Twitchat開発者向けに、イベントを受信し、一部の機能をリモートで制御するための API を公開しています。
そのドキュメントを読んでください。
/search
によるすべてのメッセージの検索を許可する/announce message
機能をサポートdata/credentials/credentials.json
ファイルを作成し、値を入力した後に次の内容を設定します。
{
"server_port" : 3018 ,
"admin_ids" : [ " YOUR_TWITCH_USER_ID " ],
"csrf_key" : " " ,
"twitch_client_id" : " " ,
"twitch_client_secret" : " " ,
"twitch_redirect_uri" : " http://localhost:8080/oauth " ,
"twitch_scopes" : [
" chat:read+user:read:chat " ,
" chat:edit+user:write:chat " ,
" moderator:manage:announcements " ,
" moderator:manage:chat_messages " ,
" moderator:manage:shoutouts " ,
" whispers:read " ,
" user:manage:whispers " ,
" moderator:read:chatters " ,
" channel:read:redemptions " ,
" channel:manage:redemptions " ,
" channel:manage:polls " ,
" channel:manage:predictions " ,
" moderator:manage:chat_settings " ,
" channel:moderate " ,
" channel:manage:moderators " ,
" channel:manage:vips " ,
" channel:manage:raids " ,
" channel:manage:broadcast " ,
" channel:read:hype_train " ,
" channel:edit:commercial " ,
" channel:read:subscriptions " ,
" user:read:emotes " ,
" user:read:follows " ,
" moderator:read:followers " ,
" user:read:moderated_channels " ,
" user:read:blocked_users " ,
" user:manage:blocked_users " ,
" user:edit:broadcast " ,
" moderator:manage:banned_users " ,
" moderator:manage:automod " ,
" moderator:manage:shield_mode " ,
" moderator:manage:unban_requests " ,
" clips:edit " ,
" channel:read:ads " ,
" channel:manage:ads " ,
" moderator:manage:blocked_terms " ,
" moderator:manage:warnings " ,
" moderator:read:moderators " ,
" moderator:read:vips " ,
" moderator:read:suspicious_users " ,
" bits:read "
],
"spotify_client_id" : " " ,
"spotify_client_secret" : " " ,
"spotify_scopes" : " user-read-currently-playing user-modify-playback-state playlist-read-private playlist-modify-public playlist-modify-private " ,
"spotify_redirect_uri" : " http://localhost:8080/spotify/auth " ,
"patreon_client_id" : " " ,
"patreon_client_secret" : " " ,
"patreon_scopes" : " identity campaigns campaigns.members w:campaigns.webhook " ,
"patreon_redirect_uri" : " http://localhost:8080/patreon/auth " ,
"patreon_client_id_server" : " " ,
"patreon_client_secret_server" : " " ,
"patreon_redirect_uri_server" : " http://localhost:3018/api/patreon/serverauth " ,
"patreon_webhook_secret" : " " ,
"patreon_cipherKey" : " " , //64 chars
"tenor_secret" : " " ,
"youtube_key" : " path/to/key.json " ,
"youtube_scopes" : [ " https://www.googleapis.com/auth/youtube.readonly " , " https://www.googleapis.com/auth/youtube.force-ssl " ],
"google_key" : " path/to/key.json " ,
"paypal_client_id" : " " ,
"paypal_client_secret" : " " ,
"donors_remote_api_secret" : " " ,
"contact_mail" : " " ,
"discord_client_id" : " " ,
"discord_public_key" : " " ,
"discord_bot_token" : " " ,
"streamlabs_client_id" : " " ,
"streamlabs_client_secret" : " " ,
"streamlabs_redirect_uri" : " " ,
"streamelements_client_id" : " " ,
"streamelements_client_secret" : " " ,
"tipeee_client_id" : " " ,
"tipeee_client_secret" : " " ,
"tipeee_redirect_uri" : " http://localhost:8080/tipeee/auth " ,
"tiltify_client_id" : " " ,
"tiltify_client_secret" : " " ,
"tiltify_webhook_verify" : " " ,
"tiltify_webhook_id" : " " ,
"tiltify_redirect_uri" : " http://localhost:8080/tiltify/auth " ,
"tiltify_scopes" : " public webhooks:write " ,
"tiltify_api_path" : " https://v5api.tiltify.com "
}
Twitch アプリケーションを作成し、 client_id
とclient_secret
値を入力します。
csrf_key
フィールドに任意の内容を書き込みます。これは、CSRF 攻撃から Twitch 認証を保護するために使用されます。
Twitch アプリケーションのリダイレクト URI を次のように構成します:
http://localhost:8080/oauth
(オンラインで展開する場合は、適切なポートとドメインに適応します)
credentials.json
ファイルのredirect_uri
プロパティに同じ値を設定します。
Spotify アプリケーションを作成し、spotify spotify_client_id
とspotify_client_secret
を入力することもできます。
デフォルトでは、サーバーはポート 3018 で待機しますが、これはcredentials.json
およびsrc_front/utils/Config.ts
で変更できます。
このプロジェクトは VSCode でコーディングされています。
これらのプラグインをインストールすることをお勧めします。
Vue プラグイン: https://marketplace.visualstudio.com/items?itemName=Vue.volar
I18n-ally プラグイン: https://marketplace.visualstudio.com/items?itemName=lokalise.i18n-ally
npm install
npm run dev
npm run build
node server/boostrap.js
以下のすべての作業は、GIT プロジェクトとは別のフォルダーで実行する必要があります。
プロジェクトをコンパイルし、 server
フォルダーのコンテンツをサーバー ルートにプッシュします。
このファイルの隣にpublic
フォルダーを作成し、その中にローカルのdist
フォルダーのコンテンツをプッシュします。
また、プロジェクトのルートにある古いdata
内にcredentials
フォルダーを追加します。
env.conf
ファイルを作成し、中にprod
記述して、プロジェクトのルートにプッシュするだけです。
すべての運用依存関係をインストールし、サーバーを実行します。
予想されるファイル構造は次のとおりです。
─ ルート
§─ ノードモジュール/
§─ 公共/
§─ ユーティリティ/
§─ データ/
§─ 資格情報/
§─ コントローラー/
§─ bootstrap.js
§─ env.conf
i18n
フォルダーの下に、言語の ISO 639-1 コードを含む新しいフォルダーを作成するだけです。
ラベルを翻訳する方法については、次のセクションをお読みください。
ローカライズをできるだけ簡単にするために、使用可能なすべてのカテゴリとラベルをリストし、編集できる専用のインターフェイスが作成されました。
このインターフェースの更新は、コンパイルされたファイルの再構築と、同じブラウザ上で開かれたTwitchatページの更新をトリガーします。
このインターフェイスには管理者のみがアクセスでき、次の場所にあります。
ローカルホスト:8080/ラベル
管理者権限を取得するには、 credentials.json
ファイルのadmin_ids
配列に Twitch ユーザー ID を設定する必要があります。
新しいラベルを追加する必要がある場合は、JSON ソースを編集する必要があります。
すべてのラベル ファイルはi18n
フォルダーの下にあります。
これらは言語ごとに分割され、次にセクションごとに分割されます。
新しいファイルまたはフォルダー構造をこれに追加できます。
これらはすべて、ビルド プロセス中にstatic/labels.json
にマージされます。
ファイルには任意の名前を付けることができますが、ファイル内のすべてのラベルは、ラベルを使用するためのベース パスとなる単一のプロパティの下にある必要があります。プロパティ名は通常、ファイルの名前と同じです。
例:
─ en
├─ global.json
├─ home.json/
├─ triggers.json/
global.json
例:
{
"global" :{
"hello" : " World "
}
}
home.json
例:
{
"home" :{
"lorem" : " ipsum dolor sit amet "
}
}
これにより、次の JSON ファイルが出力されます。
{
"en" :{
"global" :{
"hello" : " World "
},
"hello" :{
"lorem" : " ipsum dolor sit amet "
}
}
}
次のコマンドを実行します。
npm run streamdeck_package
コンパイルされたプラグインはstreamdeck_plugin/fr. Twitchat .streamDeckPlugin
。