Questa guida spiega come utilizzare la finestra di autorizzazione per ottenere token d'accesso utente Instagram di breve durata e autorizzazioni dagli utenti Instagram.
La finestra di autorizzazione consente agli utenti dell'app di concedere alla tua app autorizzazioni e token d'accesso utente Instagram di breve durata. Quando un utente effettua l'accesso e decide a quali dati può accedere la tua app, lo reindirizziamo alla tua app includendo un codice di autorizzazione, che può essere cambiato con un token d'accesso di breve durata.
Per iniziare il processo, ottieni la finestra di autorizzazione e visualizzala per quell'utente:
https://api.instagram.com/oauth/authorize ?client_id={instagram-app-id} &redirect_uri={redirect-uri} &scope={scope} &response_type=code &state={state} //Optional
Tutti i parametri tranne state
sono obbligatori.
Parametro | Valore di esempio | Descrizione |
---|---|---|
|
| L'ID della tua app Instagram visualizzato in Dashboard gestione app > Prodotti > Instagram > Basic Display. |
|
| Un URI a cui vengono reindirizzati gli utenti dopo aver approvato o rifiutato la richiesta di autorizzazione. Assicurati che corrisponda esattamente a uno degli URI di base presenti nella tua lista di URI OAuth validi. La Dashboard gestione app potrebbe aver aggiunto una barra finale ai tuoi URI, pertanto ti consigliamo di controllare la lista. |
|
| Imposta questo valore su |
|
| Una lista separata da virgole o una lista separata da spazi con codifica URL, di autorizzazioni da richiedere all'utente dell'app. |
|
| Un valore opzionale che indica lo stato specifico di un server. Ad esempio, puoi usare questo valore come protezione contro gli attacchi CSRF. Includeremo questo parametro e questo valore in fase di reindirizzamento dell'utente alla tua app. |
https://api.instagram.com/oauth/authorize ?client_id=990602627938098 &redirect_uri=https://socialsizzle.herokuapp.com/auth/ &scope=user_profile,user_media &response_type=code
In caso di autorizzazione eseguita correttamente, reindirizzeremo l'utente al tuo redirect_uri
e ti comunicheremo un codice di autorizzazione attraverso il parametro della stringa della query code
. Acquisisci il codice in modo che la tua app possa cambiarlo con un token d'accesso utente Instagram di breve durata.
I codici di autorizzazione sono validi per 1 ora e possono essere utilizzati solo una volta.
https://socialsizzle.herokuapp.com/auth/?code=AQBx-hBsH3...#_
#_
sarà aggiunto alla fine dell'URI di reindirizzamento, ma non fa parte del codice stesso, quindi rimuovilo.
Se l'utente annulla il flusso di autorizzazione, lo reindirizzeremo al tuo redirect_uri
includendo i seguenti parametri di errore. In queste circostanze è tua responsabilità gestire i problemi in modo ottimale e mostrare agli utenti un messaggio appropriato.
Parametro | Valore |
---|---|
|
|
|
|
|
|
https://socialsizzle.herokuapp.com/auth/?error=access_denied &error_reason=user_denied &error_description=The+user+denied+your+request
Dopo aver ricevuto il codice, cambialo con un token d'accesso di breve durata inviando una richiesta POST
al seguente endpoint:
POST https://api.instagram.com/oauth/access_token
Includono i seguenti parametri nel corpo della tua richiesta POST.
Parametro | Valore di esempio | Descrizione |
---|---|---|
|
| L'ID della tua app Instagram visualizzato in Dashboard gestione app > Prodotti > Instagram > Basic Display. |
|
| La chiave segreta della tua app Instagram visualizzata in Dashboard gestione app > Prodotti > Instagram > Basic Display. |
|
| Il codice di autorizzazione che ti abbiamo comunicato nel parametro |
|
| Imposta questo valore su |
|
| L'URI di reindirizzamento che ci hai comunicato in fase di reindirizzamento dell'utente alla nostra finestra di autorizzazione. Deve essere lo stesso URI, in caso contrario rifiuteremo la richiesta. |
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...
In caso di azione eseguita correttamente, l'API restituirà un payload JSON che contiene il token d'accesso di breve durata e l'ID utente dell'app.
{ "access_token": "IGQVJ...", "user_id": 17841405793187218 }
Acquisisci il valore access_token
. Questo è il token d'accesso utente Instagram di breve durata che la tua app può usare per accedere agli endpoint dell'API Instagram Basic Display.
Se la richiesta non viene effettuata in modo corretto, l'API restituirà un errore.
{ "error_type": "OAuthException", "code": 400, "error_message": "Matching code was not found or was already used" }