2011-12-21 11 views
1

Twilio github pageのサンプルコードに従っており、動作しません。私のRailsのコンソールでは、次のようになります。Twilioアプリ; twilio-ruby(3.4.2)、SSLエラー

irb(main):039:0> require 'twilio-ruby' 
=> nil 
irb(main):040:0* account_sid='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' 
=> "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" 
irb(main):041:0> auth_token='yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy' 
=> "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy" 
irb(main):042:0> client=Twilio::REST::Client.new account_sid, auth_token 
=> <Twilio::REST::Client @account_sid=AC1322312300a752f6e84a8254535ecce5> 
irb(main):043:0> client.account.sms.messages.create :from=>'16135551234', :to=>'16135551212',  :body=>"Ada is fat" 
OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed 
    from C:/Ruby192/lib/ruby/1.9.1/net/http.rb:678:in `connect' 
    from C:/Ruby192/lib/ruby/1.9.1/net/http.rb:678:in `block in connect' 
    from C:/Ruby192/lib/ruby/1.9.1/timeout.rb:44:in `timeout' 
    from C:/Ruby192/lib/ruby/1.9.1/timeout.rb:87:in `timeout' 
    from C:/Ruby192/lib/ruby/1.9.1/net/http.rb:678:in `connect' 
    from C:/Ruby192/lib/ruby/1.9.1/net/http.rb:637:in `do_start' 
    from C:/Ruby192/lib/ruby/1.9.1/net/http.rb:626:in `start' 
    from C:/Ruby192/lib/ruby/1.9.1/net/http.rb:1168:in `request' 
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rest-client-1.6.7/lib/restclient/net_http_ext.rb:51:in `request' 
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/twilio-ruby-3.4.2/lib/twilio-ruby/rest/client.rb:214:in `connect_and_send' 
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/twilio-ruby-3.4.2/lib/twilio-ruby/rest/client.rb:138:in `block (2 levels) in <class:Client>' 
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/twilio-ruby-3.4.2/lib/twilio-ruby/rest/list_resource.rb:73:in `create' 
    from (irb):43 
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.11/lib/rails/commands/console.rb:44:in `start' 
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.11/lib/rails/commands/console.rb:8:in `start' 
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.11/lib/rails/commands.rb:23:in `<top (required)>' 
    from script/rails:6:in `require' 
    from script/rails:6:in `<main>'irb(main):044:0> 

他に何私が正常にテキストメッセージを送信するためにtwilio-ルビーを得るために行う必要がありますか?私は着信呼に対してこれらの番号と資格情報を使用しています。

**代わりに私のPC上でこのコードを実行しているのEDIT 2011年12月24日* ** 、私はheroku.comにそれを展開。その後、SSLエラーは発生せず、発信コールを発信することができました。私は非常に困惑しています。

+0

Herokuの適切なCA証明書ファイルが適切な場所にあり、ルビーがそれらを見つけることができます。 – amb

答えて

5

これは3.5.0で始まるtwilio-rubyのバージョンで問題になることはありません。それは今すぐ "すぐに"機能します。

3.5.0より前のtwilio-rubyバージョンでは、gemにパッケージされたSSL CA証明書バンドルはありませんでした。

client = Twilio::REST::Client.new sid, token, :ssl_ca_file => '/path/to/file' 

をか(生産にはお勧めしません)完全にSSL認証を無効にするには:だからこれを「修正」する唯一の方法は、初期化時に証明書バンドルであなたのクライアントを指すようにいずれかであった

client = Twilio::REST::Client.new sid, token, :ssl_verify_peer => false 
+0

2台目は私のテストサーバー(a.k.a.ラップトップ)で動いているtwilioと一緒に行きました。 –

0

ルート証明書ファイルがない可能性があります。これは、通常必要ありませんが、あなたは、呼び出しを行う前に、これらの行を追加することで、証明書の検証を無効にしてみてくださいすることができます

require 'open-uri' 
require 'openssl' 
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE 
+0

私はこれを試しましたが、まったく同じエラーが発生しました。私は余分な宝石をインストールする必要がありますか、または他の設定ジギーポケリーを行う必要がありますか? –

+0

SSLピア検証を無効にするには、ssl_verify_peer => falseをクライアントコンストラクタのパラメータとして渡します。client = Twilio :: REST :: Client.new sid、token、:ssl_verify_peer => false – amb

+0

こんにちはAndrew Benton。あなたの提案はうまくいった。あなたが適切な回答としてそれを投稿するなら、私はそれを受け入れるでしょう。 –