Twitter Gem使ってみた
Twitterでオバマ大統領(@BarackObama)があかり大好きbot(@akari_daisuki)をフォローしているとかいう画像を目にした
少し前からRubyのTwitter Gemを使ってみたかったので、Twitter Gemで検証してみた
Twitter Gemのインストール
Twitter Gem使ったことないのでインストールから
>gem install twitter
すると
Please update your PATH to include build tools or download the DevKit
from 'http://rubyinstaller.org/downloads' and follow the instructions
at 'http://github.com/oneclick/rubyinstaller/wiki/Development-Kit'
とエラーが出るので
http://github.com/oneclick/rubyinstaller/wiki/Development-Kit
にしたがってDevKitをインストールする
行ったことは
>cd (Devkitを展開したパス) >ruby dk.rb init (config.ymlの確認をする) >ruby dk.rb install
うまくいったようなので再度
>gem install twitter
インストール終了
require 'twitter'
でtrueが返ってくることを確認
dev.twitter.comに登録
次にconsumer_key, consumer_secret, access_token, access_token_secretを取得する
https://dev.twitter.com/
へ行って、自分のアカウントで適当に登録する
この辺の説明は省略
検証プログラム
require '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_TOKEN_SECRET" end obama = client.user("BarackObama") akari = client.user("akari_daisuki") p client.friendship?(obama, akari)
実行してみるとclient.user("BarackObama")を実行したときに
Twitter::Error: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
というエラーが出た
SSLはよくわからないが、環境変数SSL_CERT_FILEに証明書へのパスを設定するとエラーが出なくなった
http://curl.haxx.se/ca/cacert.pem
から証明書をダウンロードして
>set SSL_CERT_FILE=(cacert.pemへのパス)
とする
先ほどのプログラムを実行すると
false
その他
最近Twitter Gemの仕様変更があったようで、調べているときに自分の環境では動かないコードがとても多くて大変だった
client = Twitter::REST::Client.new do |config|
が
Twitter.configure do |config|
となっているところがあったり、
config.oauth_token = ...
では警告が出るので
config.access_token = ...
と書き換えたりした
最初からRubyDoc.infoを参照すればよかった