Ce guide explique comment utiliser la fenêtre d’autorisation pour obtenir des tokens d’accès pour utilisateur Instagram de courte durée et des autorisations d’utilisateurs d’Instagram.
La fenêtre d’autorisation permet aux utilisateurs de l’application d’accorder des autorisations et des tokens d’accès pour utilisateur Instagram de courte durée. Une fois qu’un utilisateur s’est connecté et a choisi les données auxquelles l’application est autorisée à accéder, nous le redirigeons vers votre application et incluons un code d’autorisation que vous pouvez échanger contre un token d’accès de courte durée.
Pour commencer, obtenez la fenêtre d’autorisation et affichez-la à l’utilisateur :
https://api.instagram.com/oauth/authorize ?client_id={instagram-app-id} &redirect_uri={redirect-uri} &scope={scope} &response_type=code &state={state} //Optional
Tous les paramètres à l’exception de state
sont requis.
Paramètre | Exemple de valeur | Description |
---|---|---|
|
| Votre ID d’app Instagram affiché dans l’Espace App > Produits > Instagram > Basic Display. |
|
| URI vers lequel nous redirigeons les utilisateurs après qu’ils ont autorisé ou refusé une demande d’autorisation. Vérifiez que celui-ci correspond exactement aux URI de base de votre liste d’URI oAuth valides. Gardez à l’esprit que l’Espace App peut avoir ajouté une barre oblique à la fin de vos URI. C’est pourquoi nous vous recommandons de vérifier la liste. |
|
| Définit cette valeur sur |
|
| Liste des autorisations séparées par des virgules (ou encodées au format URL et séparées par des espaces) à demander à l’utilisateur de l’application. Le paramètre |
|
| Valeur facultative indiquant un état propre au serveur. Vous pouvez, par exemple, l’utiliser en guise de protection contre les problèmes CSRF. Nous incluons ce paramètre et sa valeur lors de la redirection de l’utilisateur vers vous. |
https://api.instagram.com/oauth/authorize ?client_id=990602627938098 &redirect_uri=https://socialsizzle.herokuapp.com/auth/ &scope=user_profile,user_media &response_type=code
Si l’autorisation fonctionne, nous redirigeons l’utilisateur vers votre redirect_uri
et vous transmettons un code d’autorisation via le paramètre de chaîne de requête code
. Capturez le code afin que votre application l’échange contre un token d’accès pour utilisateur Instagram de courte durée.
Les codes d’autorisation sont valides pendant une heure et ne peuvent être utilisés qu’une seule fois.
https://socialsizzle.herokuapp.com/auth/?code=AQBx-hBsH3...#_
Notez que les caractères #_
seront ajoutés à la fin de l’URI de redirection, mais qu’ils ne font pas partie du code en lui-même. N’hésitez donc pas à les supprimer.
Si l’utilisateur annule le flux d’autorisation, nous redirigeons cet utilisateur vers votre redirect_uri
et ajoutons les paramètres d’erreur suivants. Il vous incombe de gérer correctement ces situations et d’afficher un message approprié à l’attention de vos utilisateurs.
Paramètre | Valeur |
---|---|
|
|
|
|
|
|
https://socialsizzle.herokuapp.com/auth/?error=access_denied &error_reason=user_denied &error_description=The+user+denied+your+request
Une fois que vous avez reçu le code, échangez-le contre un token d’accès de courte durée en envoyant une demande POST
au point de terminaison suivant :
POST https://api.instagram.com/oauth/access_token
Ajoutez les paramètres suivants au corps de votre demande POST.
Paramètre | Exemple de valeur | Description |
---|---|---|
|
| Votre ID d’app Instagram affiché dans l’Espace App > Produits > Instagram > Basic Display. |
|
| Votre clé secrète d’Instagram affichée dans l’Espace App > Produits > Instagram > Basic Display. |
|
| Le code d’autorisation que nous vous avons fourni dans le paramètre |
|
| Définit cette valeur sur |
|
| L’URI de redirection que vous nous avez fourni au moment de rediriger l’utilisateur vers notre fenêtre d’autorisation. Il doit s’agir du même URI, sans quoi nous rejetons la demande. |
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...
En cas de réussite, l’API renvoie une charge utile JSON contenant le token d’accès de courte durée et l’ID d’utilisateur de l’utilisateur de l’application.
{ "access_token": "IGQVJ...", "user_id": 17841405793187218 }
Capturez la valeur access_token
. Il s’agit du token d’accès de courte durée pour utilisateur Instagram que votre application peut utiliser pour accéder aux points de terminaison de l’API Basic Display d’Instagram.
Si la demande n’est pas correctement formée, l’API retourne une erreur.
{ "error_type": "OAuthException", "code": 400, "error_message": "Matching code was not found or was already used" }