前回の記事で「bot作りは意外と簡単」と書きましたが、具体的なプログラミングを始める前にbotを作るための基礎知識について紹介していきます。まずはTwitter APIからです。
Twitter APIって?
Twitter APIはTwitterを操作するためのインターフェースです。HTTP経由で通信を行い、GETやPOSTを利用したREST方式でアクセスが可能です。
Twitter APIは、Webサービスを利用するプログラムを書いたことがあれば簡単に触ることができると思います。また、各プログラミング言語のTwitter用ライブラリが開発されていまるので、直接Twitter APIを操作しなくても良いのが嬉しいところです。このため、発言を取得したり発言したりといった機能は、案外簡単に実装できます。
Twitter APIのテスト
実はプログラミングをしなくてもブラウザだけでTwitter APIをテストすることができます。ちょっと調べたい時には重宝しますので、まずはブラウザからTwitter APIにアクセスしてみましょう(注意:Twitterは2010年6月にBASIC認証によるAPI操作を廃止すると予告しています。BASIC認証によるAPI操作が廃止されるとここで紹介しているブラウザでのテストは行えなくなります)。
ブラウザで次のURLにアクセスしてみてください。ユーザ名とパスワードを求められますので、Twitterのユーザ名とパスワードを入力します。
- https://api.twitter.com/1/statuses/user_timeline.xml
- https://api.twitter.com/1/statuses/mentions.xml
- https://api.twitter.com/1/account/rate_limit_status.xml
1つ目のuser_timelineでは、BASIC認証で入力したユーザアカウント自身の最新発言一覧を取得することができます。
また、user_timelineは自分自身の発言一覧だけではなく、特定のアカウントの発言一覧を取得することもできます。たとえば次のURLでは、弊社作成のbotであるrecipetterの発言一覧を取得することができます。
https://api.twitter.com/1/statuses/user_timeline.xml?id=recipetter
2つ目のmentionsでは、自身宛のツイートの一覧を取得することができます。ユーザがbot宛の発言(ツイート)を取得することができますので、ユーザと会話をするbotを実現するためには必須の機能です。
3つ目のrate_limit_statusでは、APIの利用回数上限を取得することができます。2010年4月12日時点の仕様では1時間あたり150回まで利用することができます。さきほどの1と2でAPIを使用したので、いくつか減っているのが確認できるかと思います(1時間後にチェックすると元の数字に戻ることを確認できます)。
APIを利用する上での注意点
上のrate_limit_statusで示したとおり、一部のTwitter APIには利用回数上限があります(制限がないものもあります)。あれやこれやとAPI周りで試行錯誤している内にAPIの利用回数上限にひっかかってしまいます。利用回数上限にひっかかると、一定時間(およそ1時間です)そのアカウントまたはそのIPアドレスからアクセスできなくなります。
上限にひっかかった際にしばらく待てば復活するのですが、上限にひっかかっても繰り返しアクセスしたりすると、ブラックリストに入れられてAPIが使えなくなるので注意してください。
bot作りにおいて重要なAPI
TwitterのAPIはこのページではとても紹介しきれないほどたくさんの種類が存在します。ここではbot作りにおいて重要となるAPIをいくつか紹介します。
インタフェース名 |
機能 |
bot作成における用途 |
statuses/update |
Twitterで発言(ツイート)する |
botが発言を行うために使用します。 |
statuses/mentions |
自分宛の発言(リプライ)を取得する |
botに対する発言に返事をすることで、会話するbotを作ることができます。 |
friendships/create |
指定されたユーザをフォローする |
フォローしてくれた人を自動フォローする際などに使用します。やりすぎるとスパムと思われることも? |
search |
条件に合致するツイートを検索する |
特定語句でツイートを拾い集めるために使用します。日本語検索はうまく引っかからない場合もあります。 |
Twitter APIは日々更新されています。最新のドキュメントはTwitter API Wikiを参照してください(英語です)。
Twitter APIの日本語訳を観測気球さんがリリースされています。2010年4月12日の時点での最新版である第49版はこちらにあります。
次回は実際に簡単なプログラムを書いてみます。