Twitter の gem を使う
標題のとおりなのですが、ドハマリです。
スクリーンネームを使って でユーザオブジェクトを得る方法
スクリーンネーム(@foobar でいう foobar の部分)を用いてユーザオブジェクトを用いるためには、ベタ書きで以下のようになります。
# クライアント定義 @client = Twitter::REST::Client.new do |config| config.consumer_key = twitter_consumer_key config.consumer_secret = twitter_consumer_secret config.access_token = twitter_access_token config.access_token_secret = twitter_access_token_secret end user_object =@client.user("foobar")
これはいいんです、これは。
ユーザID を使ってユーザオブジェクトを得る方法
これがドハマりです。なぜなのか。
それは、指定するユーザIDは文字列ではなく数値でなければいけない からです。例えばユーザIDが 1234567890123 であるユーザのオブジェクトを得るために、以下のような書き方だと NG です。
# クライアントは @client として定義済みとする user_object = @client.user("1234567890123")
以下のようしないとダメです。これは冷静に考えたら当然のことで、クォートしてる場合は「スクリーンネーム」で検索するとみなされるからですね。
# クライアントは @client として定義済みとする user_object = @client.user(1234567890123)
変数でユーザIDを渡す場合はもちろん型に注意です。to_i
する必要があるかと思います。
最後はやはりエラーメッセージ
これにハマってなかなか抜け出せなかったところ、やはり決め手となったのはエラーメッセージですね。一次情報としてのドキュメントとエラーメッセージ、そしてログを確認することは怠らないようにしたいです。