In diesem Leitfaden erfährst du, wie du das Autorisierungsfenster verwendest, um kurzlebigeInstagram-Benutzer-Zugriffsschlüssel und Berechtigungen von Instagram-Benutzern abzurufen.
Über das Autorisierungsfenster können App-Benutzer deiner App Berechtigungen und kurzlebigeInstagram-Benutzer-Zugriffsschlüssel gewähren. Nachdem sich ein Benutzer angemeldet und ausgewählt hat, auf welche Daten deine App zugreifen darf, leiten wir den Benutzer zu deiner App weiter und fügen einen Autorisierungscode hinzu, den du dann gegen einen kurzlebigen Zugriffsschlüssel tauschen kannst.
Um mit dem Vorgang zu beginnen, rufe das Autorisierungsfenster ab und präsentiere es dem Benutzer:
https://api.instagram.com/oauth/authorize ?client_id={instagram-app-id} &redirect_uri={redirect-uri} &scope={scope} &response_type=code &state={state} //Optional
Alle Parameter mit Ausnahme von state
sind Pflichtparameter.
Parameter | Beispielwert | Beschreibung |
---|---|---|
|
| Deine unter App-Dashboard > Produkte > Instagram > Basic Display angezeigte Instagram-App-ID. |
|
| Ein URI, an den wir die Benutzer weiterleiten, nachdem sie die Berechtigungsanfrage zugelassen oder abgelehnt haben. Stelle sicher, dass dieser genau mit einem der Basis-URIs in deiner Liste gültiger oAuth-URIs übereinstimmt. Beachte, dass zu deinen URIs im App-Dashboard möglicherweise am Ende ein Schrägstrich hinzugefügt wurde. Daher wird empfohlen, die Liste zu überprüfen. |
|
| Lege diesen Wert auf |
|
| Eine durch Kommas getrennte Liste bzw. eine URL-codierte Liste (mit Leerzeichen als Trennzeichen) mit Berechtigungen, die vom App-Benutzer angefordert werden müssen. |
|
| Ein optionaler Wert, der einen serverspezifischen Zustand angibt. Du kannst damit z. B. CSRF-Schutz gewährleisten. Wir fügen diesen Parameter und Wert hinzu, wenn der Benutzer zu dir zurückgeleitet wird. |
https://api.instagram.com/oauth/authorize ?client_id=990602627938098 &redirect_uri=https://socialsizzle.herokuapp.com/auth/ &scope=user_profile,user_media &response_type=code
Wenn die Autorisierung erfolgreich ist, leiten wir den Benutzer an deinen redirect_uri
weiter und übermitteln dir über den Abfrage-String-Parameter code
einen Autorisierungscode. Notiere den Code, damit deine App ihn gegen einen kurzlebigen Instagram-Benutzer-Zugriffsschlüssel tauschen kann.
Autorisierungscodes sind 1 Stunde lang gültig und können nur einmal verwendet werden.
https://socialsizzle.herokuapp.com/auth/?code=AQBx-hBsH3...#_
Beachte, dass #_
am Ende des Weiterleitungs-URI angehängt wird. Da es aber nicht Teil des eigentlichen Codes ist, muss es gelöscht werden.
Wenn der Benutzer den Autorisierungsvorgang abbricht, leiten wir ihn an deinen redirect_uri
weiter und hängen die folgenden Fehlerparameter an. Es ist deine Aufgabe, deinen Benutzern in diesen Fällen eine geeignete Meldung anzuzeigen.
Parameter | Wert |
---|---|
|
|
|
|
|
|
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 einen kurzlebigen Zugriffsschlüssel tauschen, indem du eine POST
-Anfrage an den folgenden Endpunkt sendest:
POST https://api.instagram.com/oauth/access_token
Nimm die folgenden Parameter in den Text der POST-Anfrage auf.
Parameter | Beispielwert | Beschreibung |
---|---|---|
|
| Deine unter App-Dashboard > Produkte > Instagram > Basic Display angezeigte Instagram-App-ID. |
|
| Dein unter App-Dashboard > Produkte > Instagram > Basic Display angezeigter Instagram-App-Geheimcode. |
|
| Der Autorisierungscode, den wir dir im |
|
| Lege diesen Wert auf |
|
| Der Weiterleitungs-URI, den du bei der Weiterleitung des Benutzers an unser Autorisierungsfenster übermittelt hast. Dabei muss es sich um den gleichen URI handeln, damit die Anfrage nicht abgelehnt wird. |
curl -X POST \ https://api.instagram.com/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": "IGQVJ...", "user_id": 17841405793187218 }
Notiere den access_token
-Wert. Dies ist der kurzlebige Instagram-Benutzer-Zugriffsschlüssel des Benutzers, den deine App verwenden kann, um auf die Endpunkte der Instagram Basic Display API zuzugreifen.
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" }