OAuthPermissionsException沙盒中的Instagram API

对于我一直在试图解决的问题,我将不胜感激。

我试图使用Instagram API访问与标签相关的数据(我们称之为“X”)。 我试图直接从Python和浏览器运行它,并得到相同的错误:

{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.'}} 

这是我编写的简单的Python代码,以使其工作:

 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() 

我是否使用沙盒的正确URL? 我阅读了Instagram API文档,沙箱中的应用程序不需要任何types的范围更改批准。

另外,该应用程序仅被授权用于沙盒:

在Instagram API中定义的应用程序的屏幕截图

任何方向将不胜感激。

谢谢,

马丁

更新 :找出发生了什么事。 首先需要改变应用程序授权的范围。 这是我做到的:

  • 从您的浏览器执行:

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

只需要用大写字母插入数据

一旦完成,应用程序被授权用于该范围。

由于我已经有访问令牌,所以我不需要执行第2步和第3步。

希望这可以帮助。

马丁

更新:找出发生了什么事。 首先需要改变应用程序授权的范围。 这是我做到的:

从您的浏览器执行:

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

只需要用大写字母插入数据

一旦完成,应用程序被授权用于该范围。

由于我已经有访问令牌,所以我不需要执行第2步和第3步。

希望这可以帮助。

马丁

这是一个很好的例子:

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

只需在url末尾添加范围参数:

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

很明显,您从其中收到access_token的应用程序不允许public_content作用域