2017-08-18 4 views
-2

Ich ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-linux] Schienen mit: Rails 5.1.3uninitialized Twilio :: REST :: LookupsClient

I Aktion haben, in dem ich eine Telefonnummer überprüfen, ob es gültig ist oder nicht und Aktion, wo ich Nachricht senden. die Nachricht Aktion funktioniert einwandfrei, aber ich bekomme einen Fehler, wenn ich versuche, eine Nummer zu überprüfen. Dies ist die Aktion

def check_phone_number 
    account_sid = Rails.application.secrets.twilio_sid 
    auth_token = Rails.application.secrets.twilio_token 
    @lookup_client = Twilio::REST::LookupsClient.new(account_sid, 
        auth_token) 
    response = @lookup_client.phone_numbers.get("# 
       {params[:phone_number]}") 
    begin 
     response.phone_number 
     render json: {'response' => 'ok'} 
    rescue Exception => e 
     if e.code == 20404 
     render json: { 'error' => 'Invalid Number' } 
     else 
     render json: { 'error' => 'Invalid Number' } 
     end 
    end 
    end 

der Fehler uninitialised Twilio::REST::LookupsClient

wie kann ich es lösen?

Antwort

1

Twilio Entwickler Evangelist hier.

Es sieht so aus, als ob Sie die neueste Version des Twilio Gems installiert haben. In dieser Version gibt es keine Twilio::REST::LookupsClient Alle REST-Clients sind Teil des Objekts Twilio::REST::Client. Sie können die Anforderung auch spezifisch vornehmen, anstatt eine Eigenschaft des von Ihnen erstellten Telefonnummernobjekts aufrufen zu müssen.

Schauen Sie sich die Dokumentation und Beispiele von making calls to the Lookup API with Ruby.

Für gerade jetzt, Ihr Code sollte wie folgt aussehen:

def check_phone_number 
    account_sid = Rails.application.secrets.twilio_sid 
    auth_token = Rails.application.secrets.twilio_token 
    @lookup_client = Twilio::REST::Client.new(account_sid, auth_token) 
    phone_number = @lookup_client.lookups.phone_numbers(params[:phone_number]) 

    begin 
    response = phone_number.fetch 
    render json: {'response' => 'ok'} 
    rescue Twilio::REST::RestError => e 
    if e.code == 20404 
     render json: { 'error' => 'Invalid Number' } 
    else 
     render json: { 'error' => 'Invalid Number' } 
    end 
    end 
end 

Hinweis, ich ersetzt auch Ihre rescue Exception weil it's a bad idea. Stattdessen können Sie rescue Twilio::REST::RestError.

Weitere Informationen über die Lookups API Telefonnummern in Ruby zu überprüfen, überprüfen Sie auf meinem Blog-Post aus using Active Model Validations and Twilio Lookups

0

Könnte der erste sein :: wirft es ab. Versuchen:

@lookup_client = Twilio::REST::LookupsClient.new(account_sid, 
        auth_token) 

statt

@lookup_client = ::Twilio::Rest::Client.new account_sid, account_auth_token 

Beispiele: https://github.com/twilio/twilio-ruby/blob/master/examples/examples.rb

, auch https://github.com/twilio/twilio-ruby/blob/master/lib/twilio-ruby/rest/client.rb sehen - sieht aus wie REST aktiviert werden sollte.

+0

nein! Hast du meine Frage gelesen? und ich weiß von wo du es kopierst. –

Verwandte Themen