ここから本文です

javaで外部APIを使う方法について ニコ生APIを使ってコメントを取得しようと思っ...

pan********さん

2014/1/2513:02:02

javaで外部APIを使う方法について
ニコ生APIを使ってコメントを取得しようと思ったのですが、APIの構文がよくわからないでいます。
調べてもjavaAPIのことばかり出てきてしまって。

この機会にAPIの勉強をしておきたいので、他のこんなクラスを使ったほうがいいとかは避けていただきたいと思っています。

よろしくお願いします

閲覧数:
1,807
回答数:
1
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

ae_********さん

編集あり2014/1/2602:33:17

panpan_teaさん 、ニコ生APIね。

途中まで調べた人の”ニコニコ解析メモ”のURLは、御覧になりましたか?
まず、APIの階層構造に則って、下位の階層から順に理解されることを、お勧めします。

ニコニコ生放送のコメント情報を、参照するまでのAPIの階層は、こんな感じです。
①ソケット通信の階層:java.net.socket等の標準API
②HTTP client APIの階層:java.net.HttpURLConnection等の標準API
この階層で、連続的に電文を受信しようとしたときに、
最初の1回目はhttp status code=200で電文がフルセットダウンロードされるが、
2回目以降はhttp status code=304 Not Modifiedが変えるので、直前の電文を保存しないと駄目とか、
cookieも 保存しておかないと駄目とか、
ブラウザのエミュレーションみたいな操作が要ります。

>他のこんなクラスを使ったほうがいいとかは避けていただきたい
つまり、以下のライブラリは、存在していても、使わないということですね。
③RESTful通信(JAX-RS規格準拠)のAPIのPOST dataの電文フォーマット:XMLやJSON電文を処理するJavaライブラリ

>APIの構文がよくわからないでいます。
”構文”というと、この③の階層の業界標準プロトコルに従った電文フォーマットで、
ニコ生APIの場合、殆どXML形式電文です。 一部json形式電文です。

④RESTful通信(JAX-RS規格準拠)のAPIの階層:HTTP clientを更に 包み込んだJavaライブラリ
この階層のAPIは、1回分の送受信だけですが、Javaの規格として標準化されています。
>調べてもjavaAPIのことばかり出てきてしまって。

次の階層のAPIを理解するためには、少なくとも③④のJAVA APIの階層の知識がないと、理解出来ないでしょう。

⑤ニコニコ生放送の通信プロトコル:
さらに、この階層のAPIで、ようやく、「最初にログインして、次は、ログインしたときにサーバから貰った何かを引き継いで、後続リクエストに渡す」といった、複数の送受信の 取り決めが出てきます。
つまり、構文と呼ばれている=電文フォーマットを 覚えただけでは、まだ、ニコニコ生放送のデータを読むようなプログラムは作れないということです。

そして、その取り決めた順序通りのプロトコルに従わないと、添付の図のように、”notlogin”という、そっけないXML形式電文が帰ってきます。
しかも、⑤の階層のプロトコルは、主催元が公開しない限り、誰も「コレが正しい”ニコニコ生放送の通信プロトコル”だ」と言えないのですから、アングラな情報で、それを調べるのにはハッキング的な苦労がいるでしょうし、ソレを使うのにもリスクが生じます。

<関連URL>
http://sourceforge.jp/projects/nicolib/wiki/ニコニコ解析メモ
http://sourceforge.jp/projects/nicolib/wiki/%E3%83%8B%E3%82%B3%E3%8...

panpan_teaさん 、ニコ生APIね。...

この回答は投票によってベストアンサーに選ばれました!

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる