沙盒中的 OAuthPermissionsException Instagram API
Posted
技术标签:
【中文标题】沙盒中的 OAuthPermissionsException Instagram API【英文标题】:OAuthPermissionsException Instagram API in Sandbox 【发布时间】:2016-02-25 02:44:43 【问题描述】:我正在尝试使用 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 文档,并且 Sandbox 中的应用程序不需要任何类型的批准即可更改范围。
此外,该应用程序仅被授权用于沙盒:
Screen Capture of Application Defined in Instagram API
【问题讨论】:
我也有这个问题!该应用程序在沙盒模式下运行,我无法获取任何内容。奇怪.. 嗨 tubu13...我将继续研究如何解决这个问题。如果您发现任何问题,请告诉我...欢迎提供任何线索。我也会这样做。干杯。 您好 tubu13,已解决...您需要在调用 API 之前更改 Instagram 的授权范围。我将在原帖中解释这一点。希望对您有所帮助。 获取范围:转到以下链接中的登录权限instagram.com/developer/authorization 文档可以在这里找到:instagram.com/developer/authentication 【参考方案1】:我知道发生了什么。首先需要更改应用程序的授权范围。我就是这样做的:
从您的浏览器执行:
https://api.instagram.com/oauth/authorize/?client_id=CLIENTID&redirect_uri=REDIRECT-URI&response_type=code&scope=SCOPE
只需要为大写的单词插入数据
一旦完成,应用程序就被授权用于该范围。
因为我已经有了访问令牌,所以我不需要执行第 2 步和第 3 步。
【讨论】:
这行得通!奇怪的是在文档中找不到任何提及的内容。相反,它说客户端自动有权访问沙盒用户数据。 是的,马科斯...我在文档中也找不到它...花了很多时间才找到...很高兴它有帮助。 更多关于 SCOPE 值的信息:instagram.com/developer/authorization 这个问题没有很好的记录。这让很多人感到困惑,所以我在how the new Instagram API works 上为开发人员写了一个简短的总结。 @Martin Rasumoff 我怎样才能找到注册的 url:"error_type": "OAuthException", "code": 400, "error_message": "重定向 URI 与注册的重定向 URI 不匹配"` 【参考方案2】:这是一个很好的例子:
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
【讨论】:
感谢您发布实际范围参数!唯一更好的办法是将 URL 包含到有关范围的文档中。以上是关于沙盒中的 OAuthPermissionsException Instagram API的主要内容,如果未能解决你的问题,请参考以下文章
沙盒中的 OAuthPermissionsException Instagram API