Twitter API

Web上でのホーム(母屋)はここなので、離れに行けるようにしようと思って、サイドバーにtwitter上での最近のつぶやきを追加してみました。というのは建前で、どのようにAPIが設計されているか調べたいと思って遊んでみました。

Twitter APIの確認

主なルールは、Twitter API 仕様書より以下のとおり。可能な限り REST に準拠しようとしているそうです。

認証

public_timeline の取得等一部の API を除くほとんどの API で、認証を使用する。応答に protected なユーザに関する情報が含まれる可能性のある API は認証が必須となっている。

引数

API によっては、必須の引数があったり、オプションとして指定可能な引数があったりする。文字列を引数にとる API を使う場合、その文字列を UTF-8 に変換し、URLエンコードする必要がある。

HTTPリクエスト

特に注釈がない場合、TwitterAPI は GET を使う。「発言」の投稿と、ダイレクトメッセージの送信のみ、POST を使う。destroy 系のAPIに関しては、DELETE も使える。

HTTPステータスコード(レスポンス)

存在しない API を実行しようとしたり、存在しないユーザを引数で指定して API を実行しようとすると、404 Not Found が返る。認証に失敗した場合は、401 Not Authorized が返る。

API の実行回数制限

TwitterAPI は、60分間に150回まで実行できる。この実行回数制限を超えた状態でさらにリクエストを送った場合、HTTPステータスコード 400 が返る。

user_timelineのリファレンス
説明 自分の過去24時間以内に update されたステータスから最大20件を取得する。
引数 id を指定すれば、その id のユーザのステータスを取得できる。
URL http://twitter.com/statuses/user_timeline/id.format
(format は xml, json, rss, atom のうちのいずれかを指定)
引数 (snip)
メソッド GET
API制限 適用対象
訳者による注記 Twitter に login 中であれば、BASIC 認証なしで GET できる。

サイドバーのデザイン変更

設定の仕方は簡単。管理ツールトップ > 詳細デザイン設定で、ページのフッタのテキストエリアに以下を貼り付けるだけ。

<div class="hatena-module">
<div class="hatena-moduletitle"><a href="http://twitter.com/ee83126">最近のつぶやき</a></div>
<div class="hatena-modulebody">
<hatena name="rss" url="http://twitter.com/statuses/user_timeline/ee83126.rss" listlimit="5">
</div>
</div>

確認

プレビューで確認すると、こんな感じで表示される。(認証が通れば…)