カケラの樹 Logo Lingr API

高速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のためのアプリケーション開発に関する情報を共有する場所です。

    はじめに

    1. APIの基礎について学ぶ
    2. APIチュートリアル
    3. APIリファレンスを読んで、あなたのアプリケーションを作りましょう!

    最近の更新

    • 2007/01/25*1APIの初版リリース

    ショーケース

    ライブラリやアプリケーションの例なら、ショーケースを見てください


    貢献するには

    この文書はWikiで(すばらしいStikiPad)作成されており、あなたも貢献することが出来ます。

    必要に応じて情報を追加したり、コメントを付けたり、質問をしたり、デモや例の投稿、あなたのLingr API応用アプリケーションの公表、解説の追記などを通じて開発を楽しみましょう!

    *1: 1/26

    *2: オリジナルのWiki(英文)についてのチャットルームです

    • original: http://wiki.lingr.com/dev/show/API+Basics

      概説

      Lingr APIはシンプルなHTTPメソッドの集合体であり、Lingr Webサイトの外からのLingrサービス利用を可能にする物です。

      それぞれのメソッドは呼び出しが成功したか失敗したかを表す応答を返すと同時に、メソッドによって異なる追加の値を返します。応答はデフォルトではXMLで為されますが、JSONで得ることも出来ます。

      引数、応答、エラーコードはそれぞれのメソッドのSpecページに記載されており、メソッドの一覧はAPIリファレンスページにあります。

      HTTPメソッド(GETかPOSTか)

      Lingr APIメソッドの呼び出しはシンプルなHTTPのリクエストで為されます。一部のメソッドはGETで呼び出す必要があり、その他はPOSTで呼び出す必要があります。

      POSTで呼び出す必要のあるメソッドの場合、パラメータはリクエストの本体に含める必要があり、Content-Typeはx-www-form-encodedとしてください。

      文字コード

      Lingrは国際化対応です。

      Lingr APIは全ての入力内容をUTF-8として受け取ります。

      Lingr APIの応答は全てUTF-8です。

      APIキー

      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を使用してアプリケーションを開発したら、ショーケースのページにて世界に向けて知らせてください。

        もしお望みなら、チュートリアル続編をご覧下さい。

コメント・トラックバック

トラックバック: http://kakera.yumenosora.net/document/show/79
presented by 雨上がりの青空を探して。