やったこと

webサービスを作るときに考えたことを垂れ流します

ajaxでニコニコのコメントを取得 & 応答結果をパースする

ニコニコAPIには動画のコメントを返却してくれる機能がある。

以下のようにニコニコ・コメントサーバに対してpostリクエストを送ると、動画のコメントを返してくれる。

■ニコニココメントサーバ・URL
http://msg.nicovideo.jp/10/api/
(※取得したい動画によってこのURLは異なる)

■POST内容

<packet><thread thread="xxxxxx" version="20061206" res_from="-1000" scores="1"/></packet>

※"thread"のID値で対象の動画を指定する。"thread"のID値の入手の仕方は前回記事を参照。

「ニコニコAPIを叩いてゲットした情報をjsonで返却するスクリプト
http://absg.hatenablog.com/entry/2014/07/12/183032

■応答内容
応答結果は以下みたいなxmlが入っている。

<chat thread=xxxxxxxx" no="xxxxx" vpos="xxxx" date="xxxxxxxxxx" mail="xxx" user_id="xxxxxxxx " anonimity="1">www</chat>
<chat thread=xxxxxxxx" no="xxxxx" vpos="xxxx" date="xxxxxxxxxx" mail="xxx" user_id="xxxxxxxx " anonimity="1">禿げワロスwww</chat>
<chat thread=xxxxxxxx" no="xxxxx" vpos="xxxx" date="xxxxxxxxxx" mail="xxx" user_id="xxxxxxxx " premium="1" anonimity="1">市ね</chat>



ajaxでデータ取得
以下のjavascriptコードでコメント取得しました。

var data = '<packet><thread thread="xxxxxxxx" version="20061206" res_from="-1000" scores="1"/></packet>';

$.ajax({
  type: 'POST',
  url: 'http://msg.nicovideo.jp/xxxx/api/',
  data: data,
  dataType: 'xml',
  success: function(xml){
    $(xml).find("chat").each(function() {
      console.log(($(this).text())); //コメントを表示
      console.log(($(this).attr('vpos'))); //vpos(発言時刻)を表示
    );
  },
  error: function(){
    alert("ERROR:cannot get nico_comments!");
  }
});