API Instagram OAuthPermissionsException dans Sandbox

J’apprécierais une certaine consortingbution / direction sur un problème que j’ai essayé de résoudre pendant un moment.

J’essaie d’accéder aux données relatives à un tag (appelons-le “X”) en utilisant l’API Instagram. J’ai essayé de l’exécuter directement depuis Python et depuis le navigateur et j’ai reçu 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 code Python simple que j’ai écrit pour le faire fonctionner:

 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 Sandbox? J’ai lu la documentation de l’API Instagram et les applications dans Sandbox n’ont besoin d’aucun type d’approbation pour un changement de périmètre.

En outre, l’application est autorisée uniquement pour Sandbox:

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

Toute direction serait grandement appréciée.

Merci,

Martin

MISE À JOUR : a compris ce qui se passait. Il faut d’abord changer la scope de l’autorisation pour l’application. C’est comme ça que je l’ai fait:

  • À partir de 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 cela fait, l’application est autorisée pour cette scope.

Comme j’avais déjà le jeton d’access, je n’avais pas besoin de suivre les étapes 2 et 3.

J’espère que cela t’aides.

Martin

    MISE À JOUR: a compris ce qui se passait. Il faut d’abord changer la scope de l’autorisation pour l’application. C’est comme ça que je l’ai fait:

    À partir de 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 cela fait, l’application est autorisée pour cette scope.

    Comme j’avais déjà le jeton d’access, je n’avais pas besoin de suivre les étapes 2 et 3.

    J’espère que cela t’aides.

    Martin

    Voici un excellent exemple:

    https://www.instagram.com/oauth/authorize?client_id=b23670e258o0fmk334jfu287c9f9953&redirect_uri=http://127.0.0.1:5000&response_type=code&scope=basic+public_content+follower_list+comments+relationships+likes

    Ajoutez simplement des parameters d’étendue à la fin de l’URL:

     &scope=basic+public_content+follower_list+comments+relationships+likes 

    Évidemment, l’application à laquelle vous avez reçu access_token ne permet pas la scope de public_content