2011年05月01日

Twitterのbotを作ってみる【ユーザ検索・フォロープログラム作成編】

TwitterのAPIではユーザのプロフィールの検索はできないらしい。
ということでまたGoogle先生にお伺いを立てて、2種類のプロフィール検索APIを見つけた。
Left HandleというところのAPI http://tps.lefthandle.net/
twipro http://twpro.jp/ というAPIがあるようだ。
あまり違いはないみたいなんだけど、検索結果の説明が分かりやすいのと、検索結果をソートできるのでLeftHandleのAPIを使ってみることにする。
これは認証とかいらないのでリクエスト文を作ってGETリクエストを投げるだけ。
難なく検索結果を取得してIDだろうが名前だろうが取ることができた。
ところでこれ、nameとscreen_nameの中身が逆転してない?

さて、検索結果は取得できたので、結果からまたTwitter APIを使ってフォロー処理を行うことにする。
しかしここでつまづいた。
これまで作ったスクリプトはTwitterへの投稿に特化しているので、フォロー処理が401 Not Authorizedで返ってくるのだ。
ググって見つかるプログラムもみんな投稿処理しかしてないから参考にならない。

よく分からない試行錯誤をして、冷静になって考えてみる。
oauthはHTTPリクエストを元に秘密鍵で署名を作成して、公開鍵(を含めたHTTPリクエスト)と秘密鍵を送信して認証を行う。
だから、フォローAPIのHTTPリクエストを作って鍵の作成を行えばよいのだ!
ということで、Twitterへの投稿コメントを受け取ってHTTPリクエストを作成し、認証を行う処理を、HTTPリクエストのURLとパラメータを受け取ってリクエスト文を作成し、認証を行うように修正した。
結果は思った通り、投稿もフォローもできるようになった!


ということで、やりたかったことがほぼ全てできるようになり、Twitter botの稼働を開始することができた。
楽しかったな。

botのURLはこちら
http://twitter.com/#!/oyajibakkai



やり残したこと・改善したいこと
Google Calendarの行事を取得するのに時々APIエラーが出るので、この時の対応
OAuth処理の改善
Primary Calendar以外のカレンダーからのイベントの取得
Twitpicに画像を投稿する際にいったんリサイズ(縮小)する処理の追加
タグ:Twitter bot
posted by 岩永 at 17:18| Comment(0) | TrackBack(0) | パソコン | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/198704712
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。