Twitter の gem を利用して ユーザID でユーザを指定する方法

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する必要があるかと思います。

最後はやはりエラーメッセージ

これにハマってなかなか抜け出せなかったところ、やはり決め手となったのはエラーメッセージですね。一次情報としてのドキュメントとエラーメッセージ、そしてログを確認することは怠らないようにしたいです。

Powered by はてなブログ