作成日: 2023-04-08 最終更新日: 2023-04-08
みなさまお久しぶりです。
私のTwitchチャンネルポイント「会員になる」を利用することで
skigo.gamesのメンバーとして登録・表示される機能を作成しました。
今のところ会員向け特典などは設計していませんが、将来的に会員であること・私のTwitchチャンネルをフォローしてくださることなどを起点とした独自コンテンツ配信ができればいいなと思っています。よろしくお願いします!
以下は技術的なことを記載しています。インフラ構成やどのような設計で作っているのか書いてみます。
視聴している方々が「会員になる」チャンネルポイントを利用すると
TwitchからTwitchのAPIからの通信を受けるシステム(以下Twitch API Webhook)に対して通信が飛びます。
Twitch API WebhookはDBにTwitchから取得したデータを保存します。「会員になる」チャンネルポイントをした今回の場合は
(1)「会員になる」チャンネルポイントが使われたことのデータと(2)使ったユーザのデータを合わせて送信します。
使ったユーザのデータについては、Twitchでみなさまが設定しているユーザ名とTwitchで一意に割り当てられているUserIDが含まれています。個人情報にあたるもの、Twitchに登録している課金情報などセンシティブデータは送られませんのでご安心ください。
Twitch API WebhookがDBにデータを保存されたデータを https://skigo.games/members に表示するには
https://skigo.games/ を運用しているサーバ側からTwitch API Webhookに対してデータ取得をします。
以上が「会員になる」チャンネルポイントを使ってから表示されるまでといったシンプルな作業のために
複数のインフラを運用、APIの設定・利用をする図解となります。より詳しい設計・コーディングなどの話については後日改めて説明できればと思います。
- Google Compute Platform
- Cloud Function
- Cloud SQL
- Serverless VPC
- Vercel
- Functions Framework (GCP Cloud Function運用のために必要なもの)
- TypeScriptを利用して構築
- prisma
- GraphQL
- Tailwind CSS
- Twitch API