我目前正在开发一个瓶子项目,并将使用Instagram API。我希望使用客户端身份验证,但是我在访问令牌上遇到问题,因为它不会返回作为参数。
我在这里提出请求:
https://api.instagram.com/oauth/authorize/?client_id=client_id&redirect_uri = redirect_uri = riect_uri&armpsens_type_type =
该应用程序已正确地重定向到令牌页面,我甚至可以在URL中看到令牌。但是当我尝试解析它时,它会空无一人。
@route('/oauth_callback')
def success_message():
token = request.GET.get("access_token")
print token.values()
return "success"
token.values((返回一个空列表。
ps:请记住,当我尝试使用服务器端身份验证进行相同的操作时,我可以成功获取代码并将其换成令牌。
对Instagram API进行查询后,您必须在响应以下收到?
http://your-redirect-uri#access_token = access-token
#之后的零件被称为 fragment ,而不是query_string参数,并且您无法在服务器中检索该信息在服务器中瓶子。
要真正获得片段,使用bottle.request.urlparts
urlparts
url字符串作为urlparse.splitresult元组。元组 包含(方案,主机,路径,QUERY_STRING和FRAGMENT(,但 片段总是空的,因为服务器不可见。
使用SDK,最好是服务器端操作 -> https://github.com/facebookarchive/python-instagram
如果您要采用这种方法,然后管理一个javaScript,该JavaScript解析访问权限,然后将其发布到您的瓶子API上以供您消费,我不建议...
来自https://instagram.com/developer/authentication/
客户端(隐式(身份验证
如果您要构建一个没有服务器组件的应用程序(a 例如,纯粹是JavaScript应用程序(,您会注意到它是 无法完成上面的第三步以接收您的access_token 不必在客户上存储秘密。你应该 切勿将您的客户端秘密通过或将您的客户端秘密存储到客户端。对于这些 情况有隐式身份验证流。