Rubyを使ってtwitter投稿してみた
Rubyを使って、twitterのbotさんを作りたいなと思い立ち、上記タイトルに挑戦してみました。
ソースコードは簡単なようなので、すぐにできるかなと思いきや、意外と落とし穴が。
環境は、前回に引き続き Windows 7 (64bit)です(Rubyのインストールは32bit版)。
まず、Ruby Twitter Gemというライブラリをインストールします。
Ruby にはデフォルトで gemコマンドが入っているので、下記のコマンドでOKです。
gem install rubygems-update
gem install twitter
上記コマンドはここらへん([1] http://yorozu123.seesaa.net/article/147918925.html)を参考にしました。
私の環境では、一行目のコマンドを実行したとたんにエラーがたくさん出てきました。
どんなエラーだったか忘れてしまったのですが、Rubyをいったんアンインストールして、下記のワンクリックRubyインストーラーを使ってインストールし直したら解決しました。
http://rubyinstaller.org/
あとは、下記のコードをプログラミングして実行するだけ。
require 'rubygems' require 'twitter' YOUR_CONSUMER_KEY = "<consumer_key>" YOUR_CONSUMER_SECRET = "<consumer_secret>" YOUR_OAUTH_TOKEN = "<oauth_token>" YOUR_OAUTH_TOKEN_SECRET = "<oauth_token_secret>" Twitter.configure do |config| config.consumer_key = YOUR_CONSUMER_KEY config.consumer_secret = YOUR_CONSUMER_SECRET config.oauth_token = YOUR_OAUTH_TOKEN config.oauth_token_secret = YOUR_OAUTH_TOKEN_SECRET end # Initialize your Twitter client client = Twitter::Client.new client.update("Rubyからこんにちわー")
コードはこのサイト([2] http://d.hatena.ne.jp/yoshidaa/20110112/1294846937)を参考にしました。
最初は[1]のサイトのコードで実行したのですが、次のようなエラーが出て困りました。
twitter_test.rb:8:in `<main>’: uninitialized constant Twitter::HTTPAuth (NameError)
[2]のサイトに書かれているように、APIが古かったようです。(ここも参考になりますね [7] http://sferik.github.com/twitter/)
あと、コード内のconsumer_key等ですが、TwitterのDeveloperサイト([3] https://dev.twitter.com/)から取得してください。
取得方法は次のサイト([4] http://support.dreamone.co.jp/Pandora/dp.do?jumpTo=DreamX&variables(LPID)=162)を参考にするといいでしょう。
ちなみにツイートをPOSTするときには、Application Type を Read and Write にしなければなりません。
次のQ&Aが参考になりました([5] https://dev.twitter.com/discussions/12216)。
これも気づきにくいのですが、変更後はKeyを再発行しなければなりません。ご注意ください。
でないとこんなエラーが出ます。
Error processing your OAuth request: Read-only appllication cannot POST (Twitter::Error::Unauthorized)
自分のアカウントに”Rubyからこんにちはー”が表示されたら成功です。
今日はこのへんで。
P.S.
GMailのアカウントを使って、twitterのアカウントを大量に作ることができるそうで。参考までに([6] http://www.lifehacker.jp/2009/08/twittergmail.html)。