web-dev-qa-db-fra.com

API Instagram OAuthPermissionsException dans le bac à sable

J'apprécierais avoir votre avis sur un problème que je tente de résoudre depuis un moment.

J'essaie d'accéder aux données liées à un tag (appelons-le "X") à l'aide d'API Instagram. J'ai essayé de l'exécuter à partir de Python et directement du navigateur et j'ai eu la même erreur:

{u'meta': {u'code': 400, u'error_type':u'OAuthPermissionsException',
u'error_message': u'This request requires scope=public_content, but this
access token is not authorized with this scope. The user must re-authorize
your application with scope=public_content to be granted this permissions.'}}

C’est le simple Python que j’ai écrit pour que cela fonctionne d’abord:

import requests

access_token = 'zzzzzzzzzzzzz'

parameters = {"q": "X",
              "scope": "public_content",
              "access_token": "zzzzzzzzzzzzz"}

response = requests.get("https://api.instagram.com/v1/tags/search",
                        params=parameters)

insta_posts = response.json()

Est-ce que j'utilise la bonne URL pour un bac à sable? J'ai lu la documentation de l'API Instagram et les applications de Sandbox n'ont besoin d'aucun type d'approbation pour un changement de portée.

De plus, l'application est autorisée pour Sandbox uniquement:

Capture d'écran de l'application définie dans l'API Instagram

Toute direction serait grandement appréciée.

Merci,

Martin

[~ # ~] mettre à jour [~ # ~] : compris ce qui se passait. Il faut d'abord modifier la portée de l'autorisation pour l'application. Voici comment je l'ai fait:

Juste besoin d'insérer vos données pour les mots en majuscule

Une fois que cela est fait, l'application est autorisée pour cette portée.

Comme j'avais déjà le jeton d'accès, je n'avais pas besoin de faire les étapes 2 et 3.

J'espère que cela t'aides.

Martin

48
Martin Rasumoff

MISE À JOUR: compris ce qui se passait. Il faut d'abord modifier la portée de l'autorisation pour l'application. Voici comment je l'ai fait:

Depuis votre navigateur, exécutez:

https://api.instagram.com/oauth/authorize/?client_id=CLIENTID&redirect_uri=REDIRECT-URI&response_type=code&scope=SCOPE

Juste besoin d'insérer vos données pour les mots en majuscule

Une fois que cela est fait, l'application est autorisée pour cette portée.

Comme j'avais déjà le jeton d'accès, je n'avais pas besoin de faire les étapes 2 et 3.

J'espère que cela t'aides.

Martin

80
Martin Rasumoff