高速WebチャットサービスLingrのAPI和訳書きかけ。はてなグループに移しました。残りの和訳は向こうでやります。
次のページを参照してください。
http://lingr.g.hatena.ne.jp/keyword/Lingr%20Developer%20Wiki
オリジナルは http://wiki.lingr.com/dev/show/HomePage で、Creative Commons Attribution 2.0の元でライセンスされています。
original: http://wiki.lingr.com/dev/show/HomePage
ここはLingrのためのアプリケーション開発に関する情報を共有する場所です。
original: http://wiki.lingr.com/dev/show/API+Basics
Lingr APIはシンプルなHTTPメソッドの集合体であり、Lingr Webサイトの外からのLingrサービス利用を可能にする物です。
それぞれのメソッドは呼び出しが成功したか失敗したかを表す応答を返すと同時に、メソッドによって異なる追加の値を返します。応答はデフォルトではXMLで為されますが、JSONで得ることも出来ます。
引数、応答、エラーコードはそれぞれのメソッドのSpecページに記載されており、メソッドの一覧はAPIリファレンスページにあります。
Lingr APIメソッドの呼び出しはシンプルなHTTPのリクエストで為されます。一部のメソッドはGETで呼び出す必要があり、その他はPOSTで呼び出す必要があります。
POSTで呼び出す必要のあるメソッドの場合、パラメータはリクエストの本体に含める必要があり、Content-Typeはx-www-form-encodedとしてください。
Lingr APIを使用するにはAPIキーが必要です。私たちはAPIキーをAPI使用状況の追跡に使用しており、Lingr API Terms of Useが遵守されているか確認しています。
APIキーを取得するのは簡単です。Lingrアカウントを取得し、APIページを開いてください。Lingr API Terms of Useを読んで承諾のリンクをクリックすればOKです。
このチュートリアルはLingr APIの使用方法の概観を示します。APIの詳細はAPIリファレンスを参照してください。
さて、APIを使ってチャットルームに入室し、"Hello World!"と発言し、退室するまでの一連の流れを見てみましょう。
このチュートリアルではHTTPクライアントとしてcurlを使用します。Mac OS Xや様々なLinuxディストリビューションにデフォルトでインストールされていますので、このチュートリアルを試す上では他に何もインストールする必要はありません。
Lingr APIを使用するにはAPIキーが必要です。このページから取得してください。
APIが動作しているか見るために、ブラウザに次のアドレスを入力してください。
http://www.lingr.com/api/explore/get_new_rooms?api_key=あなたのAPIキー
XMLでの応答が得られたら、準備完了です。
このチュートリアルでは「0123456789abcdef0123456789abcdef」というAPIキーを使用します。
まず最初に、セッションを作ります。これにはsession.createを呼び出します。
URL : http://www.lingr.com/api/session/create Method : POST Parameters : api_key=0123456789abcdef0123456789abcdef
ターミナルで次のように入力してください。
curl -d api_key=0123456789abcdef0123456789abcdef http://www.lingr.com/api/session/create
以下のような応答が得られれば成功です。
<?xml version="1.0" encoding="UTF-8"?> <response> <session>9876543210</session> <status>ok</status> </response>
応答には後に必要となるセッションIDが含まれますので、解析して値を取っておいてください。今回はセッションIDとして9876543210が得られました。
いくつかのAPIは最長でも10分毎に実行しなければセッションタイムアウトとなります。よって、手早く次に移りましょう。
それでは好きなチャットルームに入室しましょう。ブラウザでルームに入室するときのURLはhttp://www.lingr.com/room/MyFavoriteRoomのようになっていますが、APIを使うためにこれを展開してルームIDを取っておきましょう。
チャットルームに入室するにはroom.enterメソッドを呼び出します。
URL : http://www.lingr.com/api/room/enter Method : POST Parameters : session=9876543210&id=MyFavoriteRoom&nickname=api-dude
ターミナルから次のように入力してください。
curl -d session=9876543210 -d id=MyFavoriteRoom -d nickname=api-dude http://www.lingr.com/api/room/enter
次のような応答が得られれば成功です。
<?xml version="1.0" encoding="UTF-8"?> <response> <ticket>my-room-ticket</ticket> <max_observe_time>80</max_observe_time> <occupant_id>my-chatter-id</occupant_id> <status>ok</status> <occupants> ... </occupants> <room> <url>http://www.lingr.com/room/MyFavoriteRoom</url> <description>This is really GREAT room!</description> <name>My Favorite Room</name> <counter>24</counter> <max_user_message_id>24</max_user_message_id> <id>abcdef12345</id> <icon_url>http://images.lingr.com/room/abcdef12345/16x16.gif</icon_url> <tags /> </room> </response>
応答には後に必要となるチケットが含まれていますので、解析して取っておいてください。今回はmy-room-ticketという値が得られました。
roonm.getMessageかrooom.observeメソッドは2分ごとに実行しなければチケットがタイムアウトするため、次に急いで進みましょう。
さあ、発言しましょう。
チャットルームで発言するにはroom.sayメソッドを呼び出します。
URL : http://www.lingr.com/api/room/say Method : POST Parameters : session=9876543210&ticket=my-room-ticket&message=hello+world
ターミナルから次のように入力してください。
curl -d session=9876543210 -d ticket=my-room-ticket -d message=hello+world http://www.lingr.com/api/room/say
次のような応答が返ってくれば成功です。
<?xml version="1.0" encoding="UTF-8"?> <response> <status>ok</status> <counter>28</counter> <message> <text>hello world</text> <nickname>api-dude</nickname> <client_type>automaton</client_type> <timestamp>2007-01-16T16:52:44-08:00</timestamp> <icon_url>http://images.lingr.com/user/0/26x26.gif</icon_url> <id>28</id> <occupant_id>j4ROzTPY9ii</occupant_id> <type>user</type> <source>api</source> </message> </response>
ブラウザで発言がちゃんと届いたか確認してください。
room.enterメソッドが呼ばれてから2分でチケットがタイムアウトするため、room.sayメソッドは直ちに呼び出してください。
全て終わりました。さあ、退室しましょう。
チャットルームから退室するにはroom.exitメソッドを呼び出します。
URL : http://www.lingr.com/api/room/exit Method : POST Parameters : session=9876543210&ticket=my-room-ticket
ターミナルから次のように入力してください。
curl -d session=9876543210 -d ticket=my-room-ticket http://www.lingr.com/api/room/exit
次のような応答が返ってくれば成功です。
<?xml version="1.0" encoding="UTF-8"?> <response> <status>ok</status> </response>
退室すると、チケットは無効になり再使用は出来ません。ルームを監視していた場合、直ちに応答が返されます。
APIの使用が終わったので、セッションを破棄しましょう。
セッションを破棄するにはsession.destroyメソッドを呼び出します。
URL : http://www.lingr.com/api/session/destroy Method : POST Parameters : session=9876543210
ターミナルから次のように入力してください。
curl -d session=9876543210 http://www.lingr.com/api/session/destroy
次のような応答が返ってくれば成功です。
<?xml version="1.0" encoding="UTF-8"?> <response> <status>ok</status> </response>
セッションを破棄すると、そのセッションで入室していた全てのルームから自動的に退室し、実行中のルーム監視は直ちに応答を返します。
これで、どのようにLingr APIが動作するかが分かりました。
Lingr APIには他にも、認証やユーザ情報問い合わせなどの機能があります。これらは全て今まで見てきたメソッドと似たような動作をします。APIリファレンスを読んであなたの発想を形にしてください!
そして、あなたがLingr APIを使用してアプリケーションを開発したら、ショーケースのページにて世界に向けて知らせてください。
もしお望みなら、チュートリアル続編をご覧下さい。
コメント・トラックバック
(ゲスト) Jorbidok
interesting, i'll be back later http://recompostaje.com/img/sexy/