I am trying to use the ruby gem 'twitter' but for unknown reasons I cant get it to work.
Here is the .rb code:
require 'twitter'
puts "Greetings, World!"
puts "Checkpoint 1"
Twitter.configure do |config|
config.consumer_key = "xxxxxxx" #removed for posting
config.consumer_secret = "xxxxxxx" #removed for posting
config.oauth_token = "xxxxxxx" #removed for posting
config.oauth_token_secret = "xxxxxxx" #removed for posting
end
Twitter.verify_credentials
puts "Checkpoint 2"
and I get the following error:
Greetings, World!
Checkpoint 1
C:/Ruby200-x64/lib/ruby/2.0.0/net/http.rb:918:in `connect': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (Twitter::Error::ClientError)
from C:/Ruby200-x64/lib/ruby/2.0.0/net/http.rb:918:in `block in connect'
from C:/Ruby200-x64/lib/ruby/2.0.0/timeout.rb:66:in `timeout'
from C:/Ruby200-x64/lib/ruby/2.0.0/net/http.rb:918:in `connect'
from C:/Ruby200-x64/lib/ruby/2.0.0/net/http.rb:862:in `do_start'
from C:/Ruby200-x64/lib/ruby/2.0.0/net/http.rb:851:in `start'
from C:/Ruby200-x64/lib/ruby/2.0.0/net/http.rb:1367:in `request'
from C:/Ruby200-x64/lib/ruby/2.0.0/net/http.rb:1126:in `get'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/faraday-0.8.7/lib/faraday/adapter/net_http.rb:73:in `perform_request'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/faraday-0.8.7/lib/faraday/adapter/net_http.rb:38:in `call'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/faraday-0.8.7/lib/faraday/response.rb:8:in `call'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/faraday-0.8.7/lib/faraday/response.rb:8:in `call'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/faraday-0.8.7/lib/faraday/response.rb:8:in `call'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/faraday-0.8.7/lib/faraday/request/url_encoded.rb:14:in `call'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/faraday-0.8.7/lib/faraday/request/multipart.rb:13:in `call'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/twitter-4.8.0/lib/twitter/request/multipart_with_file.rb:14:in `call'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/faraday-0.8.7/lib/faraday/connection.rb:247:in `run_request'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/faraday-0.8.7/lib/faraday/connection.rb:100:in `get'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/twitter-4.8.0/lib/twitter/client.rb:108:in `request'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/twitter-4.8.0/lib/twitter/client.rb:66:in `get'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/twitter-4.8.0/lib/twitter/api/utils.rb:82:in `object_from_response'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/twitter-4.8.0/lib/twitter/api/users.rb:50:in `verify_credentials'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/twitter-4.8.0/lib/twitter.rb:60:in `method_missing'
from C:/Ruby200-x64/AppCode/twitter_connect.rb:13:in `<main>'
I am a ruby newbie and I cant make sense of the client error... perhaps I am missing something. I have also confirmed my Oauth credentials are working in python.
Thanks in advance and I look forward to your help.
I was able to solve my own question. For those having the same issue try using the following:
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
It disables the SSL security but it allows you to process with troubleshooting. The underlying issue is an outdated SSL.
I'm very new to ruby as well but are you using a Mac? It may be because of outdated SSL certificate files. Here's a link to instructions that solved the problem for me. http://railsapps.github.io/openssl-certificate-verify-failed.html
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With