作成日: 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
作成日: 2023-02-14 最終更新日: 2023-02-17
Twitchでskingoldとして配信をしているものです。
ストック情報をまとめておきたいというモチベーションからskigo.gamesを作る次第となりました。
今までもまとめた記事としてnotionに情報をまとめて発信をしていました。ゲーム実況配信の振り返り2021/9/14~2022/3/18とか配信してから1年の振り返りとか。
notionは書きやすくてすぐに文書を共有できる。しかし複数記事を一元的に管理しづらいしなあって思ってました。
今後の活動について長くつづけていきたいという思いが配信活動をして1年経っても続いているので、ドメイン取って管理すっか~となって立ち上がった次第です。
ブログサイトのような、記事を書くところだけになっちゃってますが徐々にコンテンツ・機能を拡張していこうと思います。
今後ともよろしくお願いいたします。