$(url URL) und $(urlfetch URL) sind dieselbe Variable unter anderen Namen. So funktionieren Commands, die du von einem anderen Bot übernimmst, ohne Änderung.
So richtest du die Adresse ein
- Nur im Dashboard. Trage den Command unter Chatbot → Commands ein. Per Chat (
!add/!edit) nimmt der Bot keine Adresse an und antwortet mit❌ $(customapi) kann nur im Dashboard eingerichtet werden. - Nur im Antwort-Text. In der Antwort bei erneutem Aufruf eines Commands mit Limit ist die Variable nicht erlaubt.
- Einmal pro Command. Das Dashboard nimmt nur ein
$(customapi)pro Command an. - Nur in Custom Commands. In Countern, Timern, Benachrichtigungen und Default Commands funktioniert die Variable nicht.
Die Adresse ist fest: Zuschauer können nichts anhängen, und
$(user) oder $(touser) lassen sich nicht einbauen. Wer den Command ausgelöst hat, erfährt dein Dienst über die Header (siehe unten).Was dein Dienst bekommt
Der Abruf ist ein GET ohne Body. Die Anfrage kommt von einem Streame-Proxy, nicht von deinem Rechner und nicht von Twitch. Mitgeschickt werden:
Damit so ein Geheimnis geheim bleibt:
- Auf deiner öffentlichen Commands-Seite steht nur
$(customapi)mit dem Hinweis “URL ausgeblendet”, nie die Adresse. - Per Chat lässt sich die Adresse weder eintragen noch anzeigen.
- Wer Zugriff auf dein Dashboard hat (auch Mods mit Zugang), sieht die Adresse im Editor.
Was dein Dienst antworten muss
- Text oder JSON. Eine Antwort vom Typ
text/…oderapplication/json. HTML-Seiten, Bilder und Dateien werden abgelehnt. JSON wird so eingesetzt, wie es ankommt, ein einzelnes Feld lässt sich nicht herausgreifen. - Status 2xx. Jeder andere Status landet als Fehlertext im Chat (siehe unten).
- Schnell. Nach 10 Sekunden bricht der Abruf ab. Bis zu 3 Weiterleitungen werden mitgegangen, Google Apps Script funktioniert damit.
- Kurz. Gelesen werden höchstens die ersten 16 KB, im Chat landen höchstens 400 Zeichen. Zeilenumbrüche werden zu Leerzeichen.
- Eine leere Antwort ergibt nichts, der Rest des Commands wird normal gesendet.
Beginnt die Antwort mit
/, . oder !, entfernt der Bot diese Zeichen. So kann eine Antwort weder einen Twitch-Befehl noch einen Command eines anderen Bots auslösen. Variablen in der Antwort werden nicht ausgewertet.Grenzen
Damit der Bot für alle Kanäle schnell bleibt, gelten feste Grenzen:
Der Cooldown des Commands (Standard 5 Sekunden) gilt auch, wenn der Abruf fehlschlägt. Setze ihn höher, wenn dein Dienst eine eigene Grenze pro Minute hat.
Streame kann die Variable bei Missbrauch für einzelne Dienste oder Kanäle sperren und bei Störungen für alle Kanäle vorübergehend anhalten. Das Dashboard sagt dir beim Speichern, wenn dein Kanal betroffen ist.
Fehlertexte im Chat
Schlägt der Abruf fehl, bricht der Command nicht ab. An der Stelle der Variable steht ein kurzer Text, der Rest der Antwort wird normal gesendet:Datenschutz
Bei jedem Abruf gehen der Login-Name und die Twitch-ID deines Kanals und des Zuschauers, der den Command auslöst, an die eingetragene Adresse. Beides ist auf Twitch öffentlich. Die IP-Adresse des Zuschauers wird nicht übermittelt. Welche Adresse du einträgst und was der Betreiber damit macht, liegt in deiner Verantwortung. Trage nur Dienste ein, denen du vertraust.Zurzeit nicht möglich
- Variablen oder Zuschauer-Eingaben in der Adresse
- Ein einzelnes Feld aus einer JSON-Antwort herausgreifen
- Einsatz in Timern, Benachrichtigungen und Countern
- Domains mit Umlauten (schreibe sie in der
xn---Form) und Ziele, die nur über IPv6 erreichbar sind