Questo documento è stato aggiornato.
La traduzione in Italiano non è ancora completa.
Aggiornamento inglese: 11 ott 2021

Ottenere token d'accesso e autorizzazioni

Questa guida spiega come utilizzare la finestra di autorizzazione per ottenere token d'accesso utente Instagram di breve durata e autorizzazioni dagli utenti Instagram.

Passaggio 1: ottenere l'autorizzazione

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

Parametri della stringa della query

Tutti i parametri tranne state sono obbligatori.

ParametroValore di esempioDescrizione

client_id
Obbligatorio
Stringa numerica

990602627938098

L'ID della tua app Instagram visualizzato in Dashboard gestione app > Prodotti > Instagram > Basic Display.

redirect_uri
Obbligatorio
Stringa

https://socialsizzle.herokuapp.com/auth/

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.

response_type
Obbligatorio
Stringa

code

Imposta questo valore su code.

scope
Obbligatorio
Lista separata da virgole o spazi

user_profile,user_media

Una lista separata da virgole o una lista separata da spazi con codifica URL, di autorizzazioni da richiedere all'utente dell'app. user_profile è obbligatorio.

state
Stringa

1

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.

Esempio di URL della finestra di autorizzazione

https://api.instagram.com/oauth/authorize
  ?client_id=990602627938098
  &redirect_uri=https://socialsizzle.herokuapp.com/auth/
  &scope=user_profile,user_media
  &response_type=code

Autorizzazione corretta

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.

Esempio di reindirizzamento autenticazione eseguito correttamente

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.

Autorizzazione annullata

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.

ParametroValore

error

access_denied

error_reason

user_denied

error_description

The+user+denied+your+request

Esempio di reindirizzamento autorizzazione annullato

https://socialsizzle.herokuapp.com/auth/?error=access_denied
  &error_reason=user_denied
  &error_description=The+user+denied+your+request

Passaggio 2: scambiare il codice con un token

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

Parametri del corpo

Includono i seguenti parametri nel corpo della tua richiesta POST.

ParametroValore di esempioDescrizione

client_id
Obbligatorio
Stringa numerica

990602627938098

L'ID della tua app Instagram visualizzato in Dashboard gestione app > Prodotti > Instagram > Basic Display.

client_secret
Stringa
obbligatoria

a1b2C3D4

La chiave segreta della tua app Instagram visualizzata in Dashboard gestione app > Prodotti > Instagram > Basic Display.

code
Obbligatorio
Stringa

AQBx-hBsH3...

Il codice di autorizzazione che ti abbiamo comunicato nel parametro code in fase di reindirizzamento dell'utente al tuo redirect_uri.

grant_type
Obbligatorio
Stringa

authorization_code

Imposta questo valore su authorization_code.

redirect_uri
Obbligatorio
Stringa

https://socialsizzle. heroku.com/auth/

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.

Esempio di 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...

Esempio di risposta positiva

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.

Esempio di risposta rifiutata

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"
}