Dieser Leitfaden erklärt, wie du das Autorisierungsfenster verwenden kannst, um Berechtigungen von Threads-Nutzer*innen für kurzlebige Thread-Nutzer*innen-Zugriffstoken abzurufen.
Im Autorisierungsfenster können App-Nutzer*innen deiner App Berechtigungen und kurzlebige Thread-Nutzer*innen-Zugriffstoken erteilen. Nachdem sich eine Person angemeldet und ausgewählt hat, auf welche Daten deine App zugreifen darf, leiten wir sie zu deiner App weiter und fügen einen Autorisierungscode hinzu, den du dann gegen ein kurzlebiges Zugriffstoken tauschen kannst.
Um mit dem Vorgang zu beginnen, rufe das Autorisierungsfenster ab und präsentiere es dem*r Nutzer*in:
https://threads.net/oauth/authorize ?client_id=<THREADS_APP_ID> &redirect_uri=<REDIRECT_URI> &scope=<SCOPE> &response_type=code &state=<STATE> // Optional
Wenn du das Autorisierungsfenster auf einem mobilen Android-Betriebssystem aufrufst, musst du sicherstellen, dass die URL in der nativen Webansicht oder einem Browser und nicht in der nativen App geöffnet wird.
Dies lässt sich beispielsweise mit dem folgenden JavaScript erreichen:
window.open(url, '_system');`
Hinweis: Alle Parameter mit Ausnahme von state sind obligatorisch.
| Name | Beschreibung |
|---|---|
Numerischer String
| Erforderlich. |
String
| Erforderlich. |
String
| Erforderlich. |
Komma- oder leerzeichengetrennte Liste
| Erforderlich. |
String
| Ein optionaler Wert, der einen serverspezifischen Zustand angibt. Du kannst damit z. B. CSRF-Schutz gewährleisten. Wir fügen diesen Parameter und den Wert hinzu, wenn wir die Person zurück zu dir umleiten. |
https://threads.net/oauth/authorize ?client_id=990602627938098 &redirect_uri=https://socialsizzle.herokuapp.com/auth/ &scope=threads_basic,threads_content_publish &response_type=code
Nach erfolgreicher Autorisierung leiten wir die Person an deinen redirect_uri weiter und übergeben dir einen Autorisierungscode im „code“-Abfrage-String-Parameter. Notiere den Code, damit deine App ihn gegen ein kurzlebiges Threads-Benutzer-Zugriffstoken tauschen kann.
Autorisierungscodes sind 1 Stunde lang gültig und können nur einmal verwendet werden.
https://socialsizzle.herokuapp.com/auth/?code=AQBx-hBsH3...#_
Hinweis:#_ wird am Ende des Weiterleitungs-URI angehängt, gehört aber nicht zum eigentlichen Code und muss daher entfernt werden.
Wenn die Person den Autorisierungsvorgang abbricht, leiten wir sie an deinen redirect_uri weiter und hängen die folgenden Fehlerparameter an.
Hinweis: Du bist dafür zuständig, deinen Nutzer*innen in diesen Fällen eine passende Meldung anzuzeigen.
| Fehlerparameter | Beschreibung |
|---|---|
|
|
|
|
|
|
https://socialsizzle.herokuapp.com/auth/?error=access_denied &error_reason=user_denied &error_description=The+user+denied+your+request
Nachdem du einen Code erhalten hast, musst du ihn gegen ein kurzlebiges Zugriffstoken tauschen, indem du eine POST-Anfrage an den folgenden Endpunkt sendest:
POST https://graph.threads.net/oauth/access_token
Dein POST-Anfragetext muss die folgenden Parameter enthalten.
| Name | Beschreibung |
|---|---|
Numerischer String
| Erforderlich. |
String
| Erforderlich. |
String
| Erforderlich. |
String
| Erforderlich. |
String
| Erforderlich. |
curl -X POST \ https://graph.threads.net/oauth/access_token \ -F client_id=990602627938098 \ -F client_secret=eb8c7... \ -F grant_type=authorization_code \ -F redirect_uri=https://socialsizzle.herokuapp.com/auth/ \ -F code=AQBx-hBsH3...
War der Vorgang erfolgreich, gibt die API eine JSON-Payload mit dem kurzlebigen Zugriffsschlüssel und der Nutzer-ID des App-Benutzers zurück.
{
"access_token": "THQVJ...",
"user_id": 17841405793187218
}
Notiere den access_token-Wert. Dieser Wert enthält das kurzlebige Threads-Nutzer*innen-Zugriffstoken, mit dem deine App auf Threads API-Endpunkte zugreifen kann.
Bei einer ungültigen Anfrage gibt die API einen Fehler zurück.
{
"error_type": "OAuthException",
"code": 400,
"error_message": "Matching code was not found or was already used"
}