Comment obtenir un jeton d’access Instagram

J’ai vraiment du mal à comprendre comment je veux obtenir mon jeton d’access pour Instagram,

J’ai enregistré un nouveau client, puis j’ai utilisé cette URL

https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=code

pour renseigner l’ID du client et redirect Url.

J’ai ensuite été redirigé vers une page où il affichait un code dans l’URL mais à partir de là, je n’ai pas la moindre idée de l’endroit où id doit alors obtenir mon jeton d’access.

Le lien vers la documentation de l’API officielle est http://instagram.com/developer/authentication/

Longstory court – deux étapes:

Obtenir le code

Ouvrez https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=code avec des informations de http://instagram.com/developer/clients/manage/

Obtenir un jeton d’access

curl \-F 'client_id=CLIENT-ID' \ -F 'client_secret=CLIENT-SECRET' \ -F 'grant_type=authorization_code' \ -F 'redirect_uri=YOUR-REDIRECT-URI' \ -F 'code=CODE' \ https://api.instagram.com/oauth/access_token 

Presque toutes les réponses que les internautes ont envoyées jusqu’ici ne couvrent que la manière de gérer les jetons d’access sur le front, suite à la procédure “d’authentification implicite” côté client d’Instagram. Cette méthode est moins sécurisée et non recommandée selon les docs de l’API Instagram.

En supposant que vous utilisez un serveur, les docs Instagram échouent à fournir une réponse claire sur l’échange d’un code pour un jeton, car ils ne donnent qu’un exemple de requête cURL. Essentiellement, vous devez faire une demande POST à ​​leur serveur avec le code fourni et toutes les informations de votre application, et ils renverront un object utilisateur comprenant les informations utilisateur et le jeton.

Je ne sais pas dans quelle langue vous écrivez, mais j’ai résolu ce problème avec Node.js avec le module request npm que vous pouvez trouver ici .

J’ai analysé l’url et utilisé ces informations pour envoyer la demande de publication

 var code = req.url.split('code=')[1]; request.post( { form: { client_id: configAuth.instagramAuth.clientID, client_secret: configAuth.instagramAuth.clientSecret, grant_type: 'authorization_code', redirect_uri: configAuth.instagramAuth.callbackURL, code: code }, url: 'https://api.instagram.com/oauth/access_token' }, function (err, response, body) { if (err) { console.log("error in Post", err) }else{ console.log(JSON.parse(body)) } } ); 

Bien sûr, remplacez les éléments configAuth par vos propres informations. Vous n’utilisez probablement pas Node.js, mais j’espère que cette solution vous aidera à traduire votre propre solution dans la langue dans laquelle vous l’utilisez.

L’API Instagram est conçu non seulement pour vous, mais pour tout utilisateur Instagram qui pourrait s’authentifier avec votre application. J’ai suivi les instructions sur le site Instagram Dev . En utilisant la première méthode (explicite), j’ai été capable de le faire assez facilement sur le serveur.

Étape 1) Ajoutez un lien ou un bouton à votre page Web sur laquelle un utilisateur pourrait cliquer pour lancer le processus d’authentification:

 Get Started 

YOUR_CLIENT_ID et YOUR_REDIRECT_URI seront remis après avoir enregistré votre application avec succès dans le backend Instagram, avec YOUR_CLIENT_SECRET utilisé ci-dessous.

Étape 2) À l’URI que vous avez défini pour votre application, qui est identique à YOUR_REDIRECT_URI , vous devez accepter la réponse du serveur Instagram. Le serveur Instagram vous fournira une variable de code dans la requête. Ensuite, vous devez utiliser ce code et d’autres informations sur votre application pour effectuer une autre demande directement à partir de votre serveur pour obtenir le access_token . Je l’ai fait en python en utilisant le framework Django, comme suit:

django direct à la fonction de response dans urls.py :

 from django.conf.urls import url from . import views app_name = 'main' urlpatterns = [ url(r'^$', views.index, name='index'), url(r'^response/', views.response, name='response'), ] 

Voici la fonction de response , gérant la requête, views.py :

 from django.shortcuts import render import urllib import urllib2 import json def response(request): if 'code' in request.GET: url = 'https://api.instagram.com/oauth/access_token' values = { 'client_id':'YOUR_CLIENT_ID', 'client_secret':'YOUR_CLIENT_SECRET', 'redirect_uri':'YOUR_REDIRECT_URI', 'code':request.GET.get('code'), 'grant_type':'authorization_code' } data = urllib.urlencode(values) req = urllib2.Request(url, data) response = urllib2.urlopen(req) response_ssortingng = response.read() insta_data = json.loads(response_ssortingng) if 'access_token' in insta_data and 'user' in insta_data: #authentication success return render(request, 'main/response.html') else: #authentication failure after step 2 return render(request, 'main/auth_error.html') elif 'error' in req.GET: #authentication failure after step 1 return render(request, 'main/auth_error.html') 

Ce n’est qu’un moyen, mais le processus devrait être presque identique en PHP ou dans tout autre langage côté serveur.

Le jeton d’access est renvoyé sous la forme d’un fragment d’URI après avoir autorisé l’application à utiliser vos données Instagram. Il devrait ressembler à ceci: entrer la description de l'image ici

Essaye ça:

http://dmolsen.com/2013/04/05/generating-access-tokens-for-instagram/

après avoir obtenu le code, vous pouvez faire quelque chose comme:

 curl -F 'client_id=[your_client_id]' -F 'client_secret=[your_secret_key]' -F 'grant_type=authorization_code' -F 'redirect_uri=[redirect_url]' -F 'code=[code]' https://api.instagram.com/oauth/access_token 

Désactivez l’oauth implicite sous l’authentification de sécurité et chargez ceci:

 https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=token 

Spécifiez l’URI REDIRECT dans votre compte et tapez-le exactement comme indiqué.

Cela a bien fonctionné pour moi:

http://jelled.com/instagram/access-token

Pour info, je l’ai utilisé en combinaison avec le plugin jQuery Instagram que vous trouverez ici; http://potomak.github.com/jquery-instagram

Si vous cherchez des instructions, consultez cet article. Et si vous utilisez C # ASP.NET, consultez ce rapport.

En utilisant https://www.hurl.it/, j’ai pu voir ceci: {“code”: 400, “error_type”: “OAuthException”, “error_message”: “Le code correspondant n’a pas été trouvé ou était déjà utilisé.” }

donc: vous devez obtenir un nouveau code pour chaque demande.

Si vous ne souhaitez pas créer votre serveur, par exemple ne développer que sur le côté client (application Web ou application mobile), vous pouvez choisir une authentification implicite .

Comme le dit le document, faites d’abord une requête https avec

https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=token

Remplissez votre ID-CLIENT et votre URL REDIRECT que vous avez désigné.

Ensuite, la page de connexion s’affiche, mais le plus important est de savoir comment obtenir le jeton d’access après la connexion correcte de l’utilisateur.

Après que l’utilisateur clique sur le bouton de connexion avec un compte et un mot de passe corrects, la page Web redirige vers l’URL que vous avez désignée, suivie d’un nouveau jeton d’access.

http: // votre-redirect-uri # access_token = ACCESS-TOKEN

Je ne suis pas familier avec le javascript, mais dans un studio Android, c’est un moyen facile d’ append un écouteur qui écoute l’événement sur lequel la page Web remplace l’URL vers la nouvelle URL (événement de redirection). vous, donc vous pouvez facilement le diviser pour obtenir le jeton d’access comme:

Ssortingng access_token = url.split (“=”) [1];

Cela signifie que l’url dans le tableau de chaînes dans chaque caractère “=”, alors le jeton d’access existe évidemment à [1].

aller gérer la page clinet dans:

http://www.instagram.com/developer/

définir une URL de redirection

puis :

utilisez ce code pour obtenir un jeton d’access:

      tst