Für Entwickler stellt Twitchat eine API zur Verfügung, um Ereignisse zu empfangen und einige Funktionen aus der Ferne zu steuern.
Lesen Sie die Dokumentation.
/search
/announce message
Erstellen Sie eine Datei data/credentials/credentials.json
und legen Sie nach dem Ausfüllen der Werte den folgenden Inhalt fest:
{
"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 "
}
Erstellen Sie eine Twitch-Anwendung und geben Sie die Werte client_id
und client_secret
ein.
Schreiben Sie alles, was Sie wollen, in das Feld csrf_key
. Es wird verwendet, um die Twitch-Authentifizierung vor CSRF-Angriffen zu schützen.
Konfigurieren Sie den Umleitungs-URI der Twitch-Anwendung auf:
http://localhost:8080/oauth
(Passen Sie bei der Online-Bereitstellung den richtigen Port und die richtige Domäne an.)
Legen Sie denselben Wert für die Eigenschaft redirect_uri
der Datei credentials.json
fest.
Sie können auch eine Spotify-Anwendung erstellen und spotify_client_id
und spotify_client_secret
eingeben
Standardmäßig lauscht der Server auf Port 3018, Sie können ihn auf credentials.json
und src_front/utils/Config.ts
ändern.
Dieses Projekt wurde mit VSCode codiert.
Es wird empfohlen, diese Plugins zu installieren:
Vue-Plugin: https://marketplace.visualstudio.com/items?itemName=Vue.volar
I18n-ally-Plugin: https://marketplace.visualstudio.com/items?itemName=lokalise.i18n-ally
npm install
npm run dev
npm run build
node server/boostrap.js
Alle folgenden Schritte MÜSSEN in einem separaten Ordner des GIT-Projekts durchgeführt werden.
Kompilieren Sie das Projekt und übertragen Sie den Inhalt des server
in Ihr Serverstammverzeichnis.
Erstellen Sie neben dieser Datei einen public
Ordner und verschieben Sie den Inhalt Ihres lokalen dist
Ordners hinein.
Fügen Sie außerdem den credentials
in einem data
im Stammverzeichnis des Projekts hinzu.
Erstellen Sie eine env.conf
Datei, schreiben Sie einfach prod
hinein und verschieben Sie sie in das Stammverzeichnis des Projekts.
Installieren Sie alle Produktionsabhängigkeiten und führen Sie den Server aus.
Hier ist die erwartete Dateistruktur:
─ Wurzel
├─ node_modules/
├─ öffentlich/
├─ Dienstprogramme/
├─ Daten/
├─ Zeugnisse/
├─ Controller/
├─ bootstrap.js
├─ env.conf
Erstellen Sie einfach einen neuen Ordner unter dem i18n
-Ordner mit dem ISO 639-1-Code der Sprache.
Lesen Sie den nächsten Abschnitt, um zu erfahren, wie Sie Etiketten übersetzen
Um die Lokalisierung so einfach wie möglich zu gestalten, wurde eine spezielle Schnittstelle erstellt, die alle verfügbaren Kategorien und Labels auflistet und die Möglichkeit bietet, diese zu bearbeiten.
Jede Aktualisierung dieser Schnittstelle löst eine Neuerstellung der kompilierten Datei sowie eine Aktualisierung aller Twitchat Seiten aus, die im selben Browser geöffnet werden.
Die Schnittstelle ist nur für Administratoren zugänglich und kann hier gefunden werden:
localhost:8080/labels
Um Administratorrechte zu erhalten, müssen Sie Ihre Twitch-Benutzer-ID im Array admin_ids
in der Datei credentials.json
festlegen.
Wenn Sie neue Labels hinzufügen müssen, müssen Sie JSON-Quellen bearbeiten.
Alle Etikettendateien finden Sie im Ordner i18n
.
Sie sind nach Sprachen und dann nach Abschnitten unterteilt.
Dazu kann jede neue Datei- oder Ordnerstruktur hinzugefügt werden.
Diese werden während des Build-Prozesses alle in static/labels.json
zusammengeführt.
Dateien können einen beliebigen Namen haben, aber alle darin enthaltenen Beschriftungen müssen sich unter einer einzigen Eigenschaft befinden, die den Basispfad für die Verwendung der Beschriftung darstellt. Der Eigenschaftsname ist normalerweise derselbe wie der Name der Datei.
Beispiel:
─ en
├─ global.json
├─ home.json/
├─ triggers.json/
global.json
-Beispiel:
{
"global" :{
"hello" : " World "
}
}
home.json
-Beispiel:
{
"home" :{
"lorem" : " ipsum dolor sit amet "
}
}
Dadurch wird diese JSON-Datei ausgegeben:
{
"en" :{
"global" :{
"hello" : " World "
},
"hello" :{
"lorem" : " ipsum dolor sit amet "
}
}
}
Führen Sie den folgenden Befehl aus:
npm run streamdeck_package
Das kompilierte Plugin befindet sich dort streamdeck_plugin/fr. Twitchat .streamDeckPlugin
.