ニコ生アラートがニコニコアラートになったので変更点

兼ねてからニコニコ生放送の開始通知手段であったニコ生アラートが、
ニコニコアラートという新サービスとして追加されました。

投稿 / 放送を即通知!ニコニコアラートで新着Check!‐ニコニコインフォ

ニコニコアラートで通知が来るものはニコ生に加えて次のものが増えるようです。

ニコニコアラートで通知が送られてくる条件は、下記の通りです。

■公式生放送
・全て通知

■その他の生放送
・登録しているコミュニティ
・登録しているチャンネル

■動画
・お気に入り登録しているユーザー
・登録しているチャンネル

■静画
・お気に入り登録しているユーザー

上記に加え、対象のユーザーがニコレポを「全ユーザーに公開」していないと通知は送られません。

ニコニコアラートの通知が来ない | ニコニコヘルプ

これはTwitterのbotに使えると思っていろいろ確認したので現時点での変更点をメモっておきます。

基本的なやりとりの方法はニコ生アラート(本家)の仕様 – ニコ百と変わっていないようです。

  1. ログインAPI
    • https://secure.nicovideo.jp/secure/login?site=nicoalert
    • nicoalert_xxxxのチケットがもらえます
  2. 認証API
    • http://alert.nicovideo.jp/front/getalertstatus
    • <communities>(登録しているコミュニティ)は返ってきません、次のAPIで取得するみたいです。
    • <ms>に<thread>が含まれず、<services>に列挙されるようになりました。
    • threadは今までのニコ生(1000000001)以外に動画(1000000002)と静画(1000000003)が現状追加されました、今後増える可能性もありそう?


    <getalertstatus status="ok" time="1346656088">
    <user_id>ユーザーID</user_id>
    <user_hash>認証用ハッシュ</user_hash>
    <user_name>ユーザー名</user_name>
    <user_prefecture>都道府県</user_prefecture>
    <user_age>年齢</user_age>
    <user_sex>性別</user_sex>
    <is_premium>一般0プレミアム1</is_premium>
    <ms>
    <addr>コメントサーバーのアドレス</addr>
    <port>コメントサーバーのポート</port>
    </ms>
    <services>
    <service>
    <id>サービスの種類</id>
    <thread>スレッドID</thread>
    </service>
    (service繰り返し)
    </services>
    </getalertstatus>

  3. お気に入り取得API
    • http://alert.nicovideo.jp/front/getcommunitylist
    • POSTデータは認証APIで取得したuser_hashとuser_id
    • 認証APIの<services>と構造がちょっと違う


    <getcommunitylist status="ok" time="アクセスタイム">
    <services>
    <service id="サービスの種類">
    <id>生放送なら登録コミュニティ(チャンネル)ID、動画ならお気に入りユーザー(チャンネル)ID、静画ならお気に入りユーザーID</id>
    (id繰り返し)
    </service>
    (service繰り返し)
    </services>
    </getcommunitylist>

  4. コメントサーバー
    • <thread thread="スレッドID" res_from="-1" version="20061206" scores="1"/>
    • 増えた属性scoresは無くても大丈夫でした。
    • サービスの数だけ送信する必要があるみたいです。送信したスレッドのサービスだけ飛んでくるかは未検証です。
    • 動画静画の場合、<chat>タグで(sm/nm/im)xxxxxxxx(動画・静画ID),xxxxxx(ユーザーID)が飛んできます。

仕組みはニコ生アラートと変わっていないので、スレッドID取得とchatタグの解析を対応すればいけるかと。。。