実際に起きた事
twitter gemをインストールして
gem install twitter
「艦これ」開発/運営アカウントの最新ツイートを取得しようとしたが
client = Twitter::REST::Client.new do |config| config.consumer_key = "YOUR_CONSUMER_KEY" config.consumer_secret = "YOUR_CONSUMER_SECRET" config.access_token = "YOUR_ACCESS_TOKEN" config.access_token_secret = "YOUR_ACCESS_SECRET" end p client.user_timeline('KanColle_STAFF').first.text
こんなエラーを吐かれた。エラー内容に情報なさすぎじゃないか。。。
/Users/naohiro/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/twitter-5.2.0/lib/twitter/rest/client.rb:143:in `rescue in request': Twitter::Error from /Users/naohiro/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/twitter-5.2.0/lib/twitter/rest/client.rb:131:in `request' from /Users/naohiro/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/twitter-5.2.0/lib/twitter/rest/client.rb:97:in `get' from /Users/naohiro/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/twitter-5.2.0/lib/twitter/rest/api/utils.rb:85:in `objects_from_response' from /Users/naohiro/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/twitter-5.2.0/lib/twitter/rest/api/utils.rb:76:in `objects_from_response_with_user' from /Users/naohiro/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/twitter-5.2.0/lib/twitter/rest/api/timelines.rb:50:in `user_timeline' from twitter.rb:21:in `<main>'
とりあえず、一つ前のバージョン5.1をインストール。
再度実行してみると、このようなエラーが!
さっそくググってみると、 SSL証明書がないのが原因らしい。
`rescue in request': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (Twitter::Error)
解決策
証明書をダウンロードする前に、標準の証明書のパスを調べます。
ruby -ropenssl -e "p OpenSSL::X509::DEFAULT_CERT_FILE" "/usr/local/etc/openssl/cert.pem"
証明書を先ほどのパスにダウンロードします。
wget -O /usr/local/etc/openssl/cert.pem http://curl.haxx.se/ca/cacert.pem
先ほどのコードを実行すると...、ちゃんと取得できました!
めでたし、めでたし。