Im Folgenden möchte ich Dir zeigen, wie Du in Twitch Deine eigene Anwendung anlegt und die passenden Token generieren kannst. Diese Anwendung wird zum Beispiel für einen Chatbot benötigt.
Inhaltsverzeichnis
Du benötigst Folgendes:
- Twitch Developer Account
1. Twitch Anwendung erstellen
Zuerst musst Du Dich bei dev.twitch.tv anmelden, mit einem Twitch Account, den Du zum Beispiel als Chatbot nutzen möchtest.
Um die Anwendung anzulegen, gehe oben rechts auf ‘Your Console’ / ‘Deine Konsole’.
Wechsel im Anschluss auf der linken Seite zu Anwendungen.
Füge jetzt eine neue Anwendung hinzu über den Button ‘Deine Anwendung registrieren’.
Vergebe einen Namen, der einzigartig ist, da Deine Anwendung auf der Verbindungsseite der Nutzer aufgeführt wird.
OAuth Redirect URLs, das darf zu Beginn zum Testen der localhost sein.
Und die Kategorie ist der Chat Bot zum Beispiel.
Erstelle zum Ende Deine Anwendung.
Erhältst Du folgende Fehlermeldung, dann musst Du noch Deine Zwei-Faktor-Authentifizierung für diesen Account einrichten. Dafür musst Du Deine Handynummer im Account mit angeben und die Zwei-Faktor-Authentifizierung einrichten.
Nachdem die Anwendung angelegt ist, gehe nochmal rein über verwalten.
Hier siehst Du die Client-ID und auch das Client-Geheimnis. Das Client-Geheimnis muss einmal generiert werden über ‘Neues Geheimnis’. Also gut speichern, wenn Du es Dir anzeigen lassen willst. Auch wichtig, niemals die Client-ID oder das Geheimnis teilen mit anderen oder öffentlich zugänglich machen!
Scopes
Schaue hier für Deine benötigten Scopes vorbei und wähle, welche Scopes Du Deiner Anwendung zuweisen möchtest. Beachte, dass Du einen Doppelpunkt (:) in der URL mit einem %3A ersetzen musst. Hast Du mehrere Scopes, dann kannst Du sie mit einem Plus (+) miteinander verknüpfen.
Zum Beispiel für unseren Bot benötigen wir diese Scopes:
scope=chat%3Aread+chat%3Aedit
Erstelle einen Autorisierung-Token / Authorize Token
Führe mit Deiner Client-ID einmal folgende URL in Deinem Browser aus, um an einen Autorisierung Token zu gelangen.
https://id.twitch.tv/oauth2/authorize
?response_type=token
&client_id=<CLIENT-ID>
&redirect_uri=http://localhost
&scope=chat%3Aread+chat%3Aedit
&state=c3ab8aa609ea11e793ae92361f002671
Im Browser wirst Du dazu aufgefordert, dass Deine Anwendung die Erlaubnis erhält, auf Dein Konto zugreifen zu dürfen.
Als Rückmeldung erhältst Du nun einen Access Token mit dem angeforderten Scope und dem entsprechenden Token Type zurück. Speichere Dir diesen gut ab und verliere ihn nicht. Ansonsten kannst Du auch die URL ein weiteres Mal ausführen.
http://localhost/
#access_token=<HIER_STEHT_DEIN_AUTHORIZE_TOKEN>
&scope=chat%3Aread+chat%3Aedit
&state=c3ab8aa609ea11e793ae92361f002671
&token_type=bearer
Im Nachgang führst Du die URL nochmal aus, dieses Mal jedoch mit dem Response Type Code, um jetzt den wichtigen Autorisierungs Code zurückzubekommen.
https://id.twitch.tv/oauth2/authorize
?response_type=code
&client_id=<CLIENT-ID>
&redirect_uri=http://localhost
&scope=chat%3Aread+chat%3Aedit
&state=c3ab8aa609ea11e793ae92361f002671
Als Rückmeldung kommt der Code zurück. Mit diesem kannst Du Dich dann wiederum nochmal mit einer anderen URL melden, um am Ende Deinen Access Token und Refresh Token zu erhalten
http://localhost/
?code=<HIER_STEHT_DEIN_AUTHORIZE_CODE>
&scope=chat%3Aread+chat%3Aedit
&state=c3ab8aa609ea11e793ae92361f002671
Den Access als auch Refresh Token bekommst Du mit folgendem CURL Befehl.
curl -X POST 'https://id.twitch.tv/oauth2/token' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'client_id=<CLIENT-ID>&client_secret=<CLIENT-SECRET>&code=<DEIN_AUTHORIZE_CODE_HIER>&grant_type=authorization_code&redirect_uri=http://localhost'
Setze Deine Client-ID, Dein Client Secret und Deinen Authorize Code ein und führe das Ganze im Terminal aus. Unter Windows ist curl vorinstalliert, falls es bei Dir nicht zur Verfügung steht, musst Du einmal nach schauen, wie Du es bei Dir installierst.
Falls es zu Problemen bei der Ausführung kommt, dann führe es zum Beispiel in der Software Postman oder in einer Linux Konsole aus.
Also Response bekommst Du Deinen Access Token, wie viele Sekunden dieser gültig ist und Deinen Refresh Token.
access_token":"DEIN_ACCESS_TOKEN","expires_in":14812,"refresh_token":"DEIN_REFRESH_TOKEN","scope":["chat:edit","chat:read"],"token_type":"bearer"}
Refresh Token
Sollte Dein Access Token mal abgelaufen sein, dann führe den folgenden CURL Befehl aus, mit Deinem Refresh Token, Deiner Client-ID und Deinem Client-Secret, um einen neuen Access Token zu erhalten.
curl -X POST https://id.twitch.tv/oauth2/token \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'grant_type=refresh_token&refresh_token=<REFRESH-TOKEN>&client_id=<CLIENT-ID>&client_secret=<CLIENT-SECRET>'
Alternativ kannst Du Dich auch einfach noch mal autorisieren, dann solltest Du einen neuen Access Token erhalten.
Quellen:
- https://dev.twitch.tv/docs/authentication/getting-tokens-oauth/ (29.09.2023 15:50)
- https://dev.twitch.tv/docs/authentication/scopes/ (29.09.2023 17:08)
- https://dev.twitch.tv/docs/authentication/refresh-tokens/ (29.09.2023 22:44)
Titelbild von Twitch