ってことで、唯一見ている某VTuberがツイキャスを始めるということだったので(まだサービスしてたのか・・w)𝕏をやってない私としては配信通知を受けられない。
ってことでとりあえずDiscordに通知できるようにサクッとn8nでやってあげたのでそのメモです。
ありがたいことにツイキャスにはちゃんとAPIの提供があり、更にWebhookにも対応しているとのこと。
https://apiv2-doc.twitcasting.tv/
ってことなのでWebhookを利用してサクッとやってやります。
アクセストークンの取得
ClientIDとClientSecretが必要ですが、それはアプリケーション登録からサクッとやってやります。
ドキュメントを参考に https://apiv2.twitcasting.tv/oauth2/authorize?client_id={YOUR_CLIENT_ID}&response_type=code&state={CSRF_TOKEN}
にアクセスしてコードを受け取ります。
ただ、CSRF_TOKEN
はなくていいのでstate以降は削ってあげます。
※コールバックURLはlocalhostとかにしておくと良い(あるならあるでいい)
コールバックにCODEが渡されるのでそいつをメモしてあげます。
それを使って/oauth2/access_token
にPOSTしてあげればアクセストークンの取得完了。
なお、これはユーザID取得のために必要なだけなので、ユーザIDがわかってる場合は不要です。
私はよくわからなかったので一応取っておきました。
※screen_idしかわかってなかった
Webhookの登録
Webhookに配信開始通知をしたい場合、登録が必要みたいです。
Register Webhookを使って登録してあげます。
curl -X POST "https://apiv2.twitcasting.tv/webhooks" \
-H "Accept: application/json" \
-H "X-Api-Version: 2.0" \
-H "Authorization: Basic {BASE64_ENCODED_STRING}" \
-d '{"user_id": "xxxxxxx", "events": ["livestart", "liveend"]}'
これでOKみたい。
BasicはClientIDとClientSecretでおkだった。
終わったら、以下で確認できるとのことだったけど、ドキュメントとは結果が違ったのでちょい謎w
curl -X GET "https://apiv2.twitcasting.tv/webhooks?limit=20&offset=5" \
-H "Accept: application/json" \
-H "X-Api-Version: 2.0" \
-H "Authorization: Basic {BASE64_ENCODED_STRING}"
Discordへの送信
テスト送信ができないっぽかったのでドキュメントだけが頼りになります。
今現在だとこの設定でちゃんと取れるっぽかったです。
{{ $json.body.broadcaster.name }}さんが配信を開始しました。
{{ $json.body.movie.title }}
{{ $json.body.movie.link }}
※なお、タイトルは正しくないっぽい
一応今回は開始と終了両方設定しましたが、通知は開始だけに。
しばらく様子見てみてちゃんと通知されてくれることを祈ります。