FAQ

FAQ

JavaScriptからLingr APIアクセスするには?

GETアクセスするメソッドは、callbackを指定することで、JSONPを使ってアクセスできます。POSTでアクセスするメソッドにJavaScriptから直接アクセスする方法はありません。(JavaScriptのある)サーバ上のプログラムを経由してアクセスしてやる必要があります。Lingr miniソースが参考になります。

JavaScriptからAPIを呼ぶ場合の注意点が「ブラウザ上での実装について」に書いてあります。


APIで自分がまだチャットルームにいるかどうかをチェックするには?

自分がタイムアウトして部屋から落ちてないかを調べるには、現状では2つの方法があります(この辺の事情は将来変わるっぽいです)。

  • それまで使っていたticketでroom.getMessagesを呼んでみる。成功すれば、まだ落ちてないということ(room.observeでは代用できません。今のところ、room.observeはticketをちゃんとチェックしないらしいです)。room.getMessages連続して呼べないので注意。
  • room.getInfoで得られるoccupantsのリストの中に自分のoccupant_id(room.enterで得られる)がないかを調べる。あれば、まだ落ちていないということ。

アーカイブを取得するAPIは?

現時点ではありません。アーカイブHTMLを解析する必要があります。Rubyでやる場合は例えばこんな感じです(標準入力から受け取ったアーカイブHTMLシンプルな形式に整形するサンプル)。

require "rubygems"
require "scrapi"
require "time"

scraper= Scraper.define() do
  process("li.handle", :handle => :text)
  process("li.messageText", :time => "@title", :message => :text) do
    time= @time[/^at (\S+)/, 1]
    handle= @handle.strip()
    for line in @message.strip().split(/\n/)
      puts([time, handle, line].join("\t"))
    end
  end
end
scraper.scrape(ARGF.read(), :parser => :html_parser)

* はてなダイアリーキーワード:FAQ