Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Twilio应用程序;twilio ruby(3.4.2),SSL错误_Ruby_Twilio - Fatal编程技术网

Twilio应用程序;twilio ruby(3.4.2),SSL错误

Twilio应用程序;twilio ruby(3.4.2),SSL错误,ruby,twilio,Ruby,Twilio,我遵循了上的示例代码,但它不起作用。在我的Rails控制台中,如下所示: irb(main):039:0> require 'twilio-ruby' => nil irb(main):040:0* account_sid='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' => "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" irb(main):041:0> auth_token='yyyyyyyyyyyyyyyyyyyyyy

我遵循了上的示例代码,但它不起作用。在我的Rails控制台中,如下所示:

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>
irb(main):039:0>需要“twilio ruby”
=>零
irb(主):040:0*帐户\u sid='XXXXXXXXXXXXXXXXXXXXXXXXXXXX'
=>“XXXXXXXXXXXXXXXXXXXXXXXXXXXX”
irb(主):041:0>auth_令牌='yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
=>“yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy”
irb(main):042:0>client=Twilio::REST::client.new account\u sid,auth\u令牌
=> 
irb(main):043:0>client.account.sms.messages.create:from=>'16135551234',:to=>'1613555212',:body=>“Ada很胖”
OpenSSL::SSL::SSLError:SSL\u connect返回=1 errno=0 state=SSLv3读取服务器证书B:证书验证失败
来自C:/Ruby192/lib/ruby/1.9.1/net/http.rb:678:in'connect'
来自C:/Ruby192/lib/ruby/1.9.1/net/http.rb:678:in'block in connect'
来自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'
来自C:/Ruby192/lib/ruby/1.9.1/net/http.rb:678:in'connect'
来自C:/Ruby192/lib/ruby/1.9.1/net/http.rb:637:in'do_start'
来自C:/Ruby192/lib/ruby/1.9.1/net/http.rb:626:in'start'
来自C:/Ruby192/lib/ruby/1.9.1/net/http.rb:1168:in'request'
来自C:/Ruby192/lib/ruby/gems/1.9.1/gems/rest-client-1.6.7/lib/restclient/net_http_ext.rb:51:in“request”
来自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'
来自C:/Ruby192/lib/ruby/gems/1.9.1/gems/twilio-ruby-3.4.2/lib/twilio-ruby/rest/client.rb:138:in `块(2层)in'
来自C:/Ruby192/lib/ruby/gems/1.9.1/gems/twilio-ruby-3.4.2/lib/twilio-ruby/rest/list_resource.rb:73:in'create'
来自(irb):43
来自C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.11/lib/rails/commands/console.rb:44:in'start'
来自C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.11/lib/rails/commands/console.rb:8:in'start'
来自C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.11/lib/rails/commands.rb:23:in`'
来自脚本/rails:6:in'require'
从脚本/rails:6:in`'irb(main):044:0>
我还需要做什么才能让twilio ruby成功发送短信?我用这些号码和凭证打电话,所以它们很好

**编辑2011年12月24日***
我没有在我的电脑上运行此代码,而是将其部署到heroku.com。然后,我没有SSL错误,我能够拨打外呼。我很困惑

您可能缺少根证书文件。这通常是不必要的,但您可以尝试禁用证书验证,方法是在调用之前添加以下行:

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

您可能缺少根证书文件。这通常是不必要的,但您可以尝试禁用证书验证,方法是在调用之前添加以下行:

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

在从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验证(不建议在生产中使用):


在从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验证(不建议在生产中使用):


我试过这个,但我得到了完全相同的错误。我需要安装额外的gems,还是做一些其他的配置把戏?您可以通过将:SSL\u verify\u peer=>false作为参数传递给客户端构造函数来禁用SSL对等验证:Client=Twilio::REST::Client.new sid,token,:SSL\u verify\u peer=>false Andrew Benton。你的建议奏效了。如果你把它作为一个正确的答案发布,我会接受它。它可能会起作用,但禁用证书检查会使你容易受到中间人攻击。我想知道如何添加丢失的根证书文件。我尝试了这个,但我得到了完全相同的错误。我需要安装额外的gems,还是做一些其他的配置把戏?您可以通过将:SSL\u verify\u peer=>false作为参数传递给客户端构造函数来禁用SSL对等验证:Client=Twilio::REST::Client.new sid,token,:SSL\u verify\u peer=>false Andrew Benton。你的建议奏效了。如果你把它作为一个正确的答案发布,我会接受它。它可能会起作用,但禁用证书检查会使你容易受到中间人攻击。我想知道如何添加丢失的根证书文件。Heroku在正确的位置有正确的CA证书文件,ruby可以找到它们。Heroku在正确的位置有正确的CA证书文件,ruby可以找到它们。第二个让我在测试服务器(又称笔记本电脑)上运行twilio第二个让我开始在我的测试服务器(又称笔记本电脑)上运行twilio。