WebSocket API
わんコメ搭載のWebSocket APIについて
概要
わんコメではWebSocket APIを搭載しています
WebSocket APIではHTTP APIと異なりイベントを常時購読することでリアルタイムに最新の情報や変更情報を取得することができます
利用上の注意
⚠️APIドキュメントは一部不完全です
Discrodサーバーの開発者専用チャンネルにて追加や最新情報をやり取りしています
開発者の方はぜひDiscordに参加して開発者であることをお知らせください
利用規約を再度ご確認ください
連携アプリケーション・サービスにもわんコメの利用規約が適用されます
クレジットの表記について
HTTP APIを利用したアプリケーション・サービスを使用する際にも無料利用の場合はクレジット表示が必要となります
アプリケーションを配布する際はクレジット表記に関する注釈を必ず記入してください
外部IPやドメインからの参照について
わんコメのAPIは安全上の理由からローカルIP以外でのアクセスに制限があります
外部IPやドメインからAPIへアクセスするためには「設定 > APIタブ」(設定ページ)にてアクセス許可するホスト名の登録が必要です
使い方
下記URLのWebSocket APIに接続します
ws://127.0.0.1:11180/sub
基本構造
購読した際のデータは基本的に次のようなJSON構造で返却されます
{
"type": "イベント名",
"data": { /*各種イベントのデータ*/ }
}
必要なデータの種類をtypeでswitchするなどして使用してください
イベントの種類とデータ
送出されるイベントとデータは次のようになります
connected
APIに接続できた際のイベントです
現時点で取得済みのコメントや設定などの情報が含まれます
{
"type": "connected",
"data": {
"comments": Comment[],
"config": Config,
"services": Service[],
"waitingList": Order[],
"setList": SetList
}
}
comments | Comment[] |
config | Config |
services | Service[] |
waitingList | Order[] |
setList | SetList |
comments
新着コメントが送信された際のイベントです
YouTube等の場合はいくつかのコメントがまとまって飛んでくることがあります
{
"type": "comments",
"data": [{
"comment": Comment,
"serviceData": Service,
"userData": UserNameData,
}]
}
comment | Comment |
serviceData | Service[] |
userData | UserNameData |
deleted
コメントが削除された際のイベントです
※ 削除に対応していない配信サイトもあります
{
"type": "deleted",
"data": {
"id": string;
"message": string
}
}
id | 削除されたコメントID |
message | 削除された理由などのメッセージ |
clear
コメントクリアが実行された際のイベントです
{
"type": "clear"
}
config
設定が更新された際のイベントです
{
"type": "deleted",
"data": Config
}
data | Config |
meta
配信のメタ情報(配信状況、視聴者数など)が更新された際のイベントです
{
"type": "meta",
"data": {service: Service, data: ServiceMeta}
}
data | { service: Service, data: ServiceMeta } |
meta.clear
配信のメタ情報がクリアされた際のイベントです(枠がなくなったときなど)
{
"type": "meta.clear"
}
userDatas
リスナー情報が更新された際のイベントです(ニックネーム、メモ、コメント数など)
{
"type": "userDatas",
"data": UserNameData[]
}
data | UserNameData[] |
services
枠情報が更新された際のイベントです
{
"type": "service",
"data": Service[]
}
data | Service[] |
pinned
ピン留め情報が更新された際のイベントです
{
"type": "pinned",
"data": Comment | null
}
data | Comment | null |
bookmarked
しおり情報が更新された際のイベントです
{
"type": "bookmarked",
"data": {
"key": string,
"commentId": string | null
}
}
key | string |
commentId | string | null |
waitingList
参加型管理の順番待ちリストが更新された際のイベントです
{
"type": "waitingList",
"data": Order[]
}
data | Order[] |
setList
セットリストの状態が変更になった際のイベントです
{
"type": "setList",
"data": SetList
}
data | SetList |
reactions
リアクションを受信した際のイベントです
{
"type": "reactions",
"data": Reaction[]
}
data | Reaction[] |
wp.update
WordPartyの設定が変更されてリロードを要求された際のイベントです
{
"type": "wp.update",
"data": { dir: string }
}
dir | 更新されたWordPartyテンプレートのディレクトリパス |
wp.exec
WordPartyの実行を要求された際のイベントです
{
"type": "wp.exec",
"data": WordPartyExecParams
}
data | WordPartyExecParams |
setList.request
セットリストにリクエストが新規登録された際のイベントです
{
"type": "setList.request",
"data": RequestItem[]
}
data | RequestItem[] |
yt.survey.start
YouTubeのアンケートが開始された際のイベントです
接続前に開始しているアンケートがある場合は受信しません
{
"type": "yt.survey.start",
"data": YouTube.SurveyData
}
data | YouTube.SurveyData |
yt.survey.update
YouTubeのアンケートが更新された際のイベントです
{
"type": "yt.survey.update",
"data": YouTube.SurveyData
}
data | YouTube.SurveyData |
yt.survey.finish
YouTubeのアンケートが終了された際のイベントです
{
"type": "yt.survey.finish",
"data": YouTube.SurveyResult
}
data | YouTube.SurveyResult |
ni.survey.start
ニコ生のアンケートが開始された際のイベントです
{
"type": "ni.survey.start",
"data": {
"state": NicoNama.EnqueteState,
"meta": NicoNama.Meta
}
}
state | NicoNama.EnqueteState |
meta | NicoNama.Meta |
ni.survey.finish
ニコ生のアンケートが終了された際のイベントです
{
"type": "ni.survey.finish",
"data": {
"state": NicoNama.EnqueteState,
"meta": NicoNama.Meta
}
}
state | NicoNama.EnqueteState |
meta | NicoNama.Meta |