すぐにAPIを試したい方は、以下のボタンを押してください。
*今、話題のFacebookの開発については”Facebookアプリ開発“によくまとめられています。
Twitter APIで開発をする前に、以下の10のことを頭にとめておいてください。
1. FAQがあることを覚えておいてください
Twitter APIを利用して、なにが疑問があれば、Twitter API FAQ(英語)を参考にしてください。
2. TwitterのAPIはRESTとSearchの2つに分かれています
現在、歴史的な経緯によりTwitter APIはREST APIとSearch APIの2つに分かれています。2つのAPIは利用できるメソッド、データ形式に違いがあります。Search APIではつぶやきを検索するAPIが提供されており、タイムラインやフォロー、メッセージなどのAPIはREST APIで提供されています。
3. APIの利用については回数制限があります
APIによるアクセス増加によってシステムに負荷がかかり一般ユーザーがTwitterを利用できなくなったりすることを避けるために、時間当たりのAPIリクエストの回数や1日あたりの更新リクエストの回数に制限をかけています。詳細については、Update and API Limits(英語)を参照ください
- 1日に利用できる更新回数はトータルで1000回になります。これは利用デバイス(ウェブ・ブラウザー、モバイル、携帯電話)が違っても合算されます
- 1日に利用できるダイレクト・メッセージは250回です
- 1時間で利用できるAPIの回数は150回です
- 制限に引っかかるとエラーメッセージが返されるようになります
4. APIはHTTPベースで行われます
データ取得系のAPIはGETでリクエストします。一方、送信、更新、廃棄そしてダイレクトメッセージ系のAPIはPOSTでリクエストします。
リクエストの内容が正しくない場合はエラーメッセージが返されます。エラーメッセージについてHTTP Response Codes and Errors(英語)を確認してください。
5. Twitter APIはRESTに準拠しようとしています
Twitter APIはRESTに準拠するように勤めています。結果形式については自由に選択できます。選択できる結果形式はXMLと,JSON,RSS,ATOMになりますが、メソッドによって選択できるフォーマットは異なりますので、ご注意ください。Twitter API Documentationを参照ください。
6. リクエスト・パラメーターの共通ルール
Twitter APIには、それぞれのメソッドごとにオプション・パラメーターと必須パラメーターがあります。また、以下の共通ルールがあります。
- パラメーターはUTF-8でURLエンコードする必要があります
- ページ・パラメーターは1からはじまります。0(ゼロ)でないので気をつけてください
- 2つの特殊パラメーターがあります
- callback: JSON形式をリクエストするときだけ利用できます。このパラメーターはレスポンスをcallbackメソッドでラップします
- suppress_response_codes: このパラメーターを利用するとあらゆる結果は200 OKで返ってきます。例え実際はエラーであってもです。このパラメーターはブラウザー上で動いているFlashやJavaScriptが200以外のレスポンス・コードを遮断してしまうことに対応するために利用します。もし、このパラメーターを利用する場合、クライアント側でコンテンツ・ボディをパースしてエラー・ステータスを確認する必要があります
- 認証なしにpublic timelineをRSSで取得する(わたしが試した時は制限がかかっていて取得失敗しました)
- curl http://twitter.com/statuses/public_timeline.rss
- 認証してフォローしているユーザーのアップデートをXMLで取得する
- curl -u username:password http://twitter.com/statuses/friends_timeline.xml
- 認証して最後のリクエストのヘッダーを見る
- curl –head -u username:password http://twitter.com/statuses/friends_timeline.xml
- ステータス・アップデートをポストし、ステータスをJSONで取得する
- curl -u username:password -d status=”your message here” http://twitter.com/statuses/update.json
私はFireFoxのPosterを利用しています。
Twitter APIライブラリー
Twitter APIを利用するために、PHP,Java,Action Script,perl,Java Scriptなどほとんどの言語ライブラリーが用意されています。
Twitter APIライブラリーを参照ください。
また、いくつかのAPIメソッドはHTTPヘッダーによって異なる結果を返します。同じパラメーターで、且つ同じHTTPヘッダーの場合は同じ結果を期待することができます。
7. ページに関しての制限
REST API制限
タイムライン・メソッドについてはpageおよびcountパラメーターを通じて取得できるステータスは3,200までに制限されています。制限を超えるリクエストをすると200ステータスですが、空の結果が返ってきます。Twitterはユーザーから送信されたつぶやきは全て保管していますが、パフォーマンスの観点から制限をかけています。
Search API制限
検索メソッドについてはpageおよびcountパラメータを通じて取得できるつぶやきは1,500までに制限されています。制限を越えるリクエストについては、REST APIと同様に200ステータスですが空の結果が返ってきます。また、利用できる検索インデックスについても日数の制限をかけています。現在は、1.5週となっていますが1日のささやきが増加するとこの数字はもっと短くなります。
8. エンコーディングはつぶやきの文字数に影響を与えます
Twitter APIはUTF-8をサポートしており、クロスサイト・スクリプティングを避けるためJSON API出力の際は、山形かっこ(”<”と”>”)はエンコードされます。エンコードされたエンタイトルは140文字制限に影響を与えます。つぶやきに”<”や”>”を利用するエンコードされ文字数が増えるために、実際に利用できる文字数は140以下になります。
9. Twitter APIを利用する簡易ツールを容易しましょう
Twitter公式APIサイトでは、API利用にあたってcurlをお勧めしています。
curlを利用してTwitter APIを利用するサンプル
