メインコンテンツまでスキップ
Version: 6.0

WebSocket API

わんコメ搭載のWebSocket APIについて

概要

わんコメではWebSocket APIを搭載しています

WebSocket APIではHTTP APIと異なりイベントを常時購読することでリアルタイムに最新の情報や変更情報を取得することができます

利用上の注意

note

⚠️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
}
}
commentsComment[]
configConfig
servicesService[]
waitingListOrder[]
setListSetList

comments

新着コメントが送信された際のイベントです

YouTube等の場合はいくつかのコメントがまとまって飛んでくることがあります

{  
"type": "comments",
"data": [{
"comment": Comment,
"serviceData": Service,
"userData": UserNameData,
}]
}
commentComment
serviceDataService[]
userDataUserNameData

deleted

コメントが削除された際のイベントです

※ 削除に対応していない配信サイトもあります

{  
"type": "deleted",
"data": {
"id": string;
"message": string
}
}
id削除されたコメントID
message削除された理由などのメッセージ

clear

コメントクリアが実行された際のイベントです

{  
"type": "clear"
}

config

設定が更新された際のイベントです

{  
"type": "deleted",
"data": Config
}
dataConfig

meta

配信のメタ情報(配信状況、視聴者数など)が更新された際のイベントです

{  
"type": "meta",
"data": {service: Service, data: ServiceMeta}
}
data{ service: Service, data: ServiceMeta }

meta.clear

配信のメタ情報がクリアされた際のイベントです(枠がなくなったときなど)

{  
"type": "meta.clear"
}

userDatas

リスナー情報が更新された際のイベントです(ニックネーム、メモ、コメント数など)

{  
"type": "userDatas",
"data": UserNameData[]
}
dataUserNameData[]

services

枠情報が更新された際のイベントです

{  
"type": "service",
"data": Service[]
}
dataService[]

pinned

ピン留め情報が更新された際のイベントです

{  
"type": "pinned",
"data": Comment | null
}
dataComment | null

bookmarked

しおり情報が更新された際のイベントです

{  
"type": "bookmarked",
"data": {
"key": string,
"commentId": string | null
}
}
keystring
commentIdstring | null

waitingList

参加型管理の順番待ちリストが更新された際のイベントです

{  
"type": "waitingList",
"data": Order[]
}
dataOrder[]

setList

セットリストの状態が変更になった際のイベントです

{  
"type": "setList",
"data": SetList
}
dataSetList

reactions

リアクションを受信した際のイベントです

{  
"type": "reactions",
"data": Reaction[]
}
dataReaction[]

wp.update

WordPartyの設定が変更されてリロードを要求された際のイベントです

{  
"type": "wp.update",
"data": { dir: string }
}
dir更新されたWordPartyテンプレートのディレクトリパス

wp.exec

WordPartyの実行を要求された際のイベントです

{  
"type": "wp.exec",
"data": WordPartyExecParams
}
dataWordPartyExecParams

setList.request

セットリストにリクエストが新規登録された際のイベントです

{  
"type": "setList.request",
"data": RequestItem[]
}
dataRequestItem[]

yt.survey.start

YouTubeのアンケートが開始された際のイベントです

接続前に開始しているアンケートがある場合は受信しません

{  
"type": "yt.survey.start",
"data": YouTube.SurveyData
}
dataYouTube.SurveyData

yt.survey.update

YouTubeのアンケートが更新された際のイベントです

{  
"type": "yt.survey.update",
"data": YouTube.SurveyData
}
dataYouTube.SurveyData

yt.survey.finish

YouTubeのアンケートが終了された際のイベントです

{  
"type": "yt.survey.finish",
"data": YouTube.SurveyResult
}
dataYouTube.SurveyResult

ni.survey.start

ニコ生のアンケートが開始された際のイベントです

{  
"type": "ni.survey.start",
"data": {
"state": NicoNama.EnqueteState,
"meta": NicoNama.Meta
}
}
stateNicoNama.EnqueteState
metaNicoNama.Meta

ni.survey.finish

ニコ生のアンケートが終了された際のイベントです

{  
"type": "ni.survey.finish",
"data": {
"state": NicoNama.EnqueteState,
"meta": NicoNama.Meta
}
}
stateNicoNama.EnqueteState
metaNicoNama.Meta