我目前正在研究一个瓶子项目,并将使用Instagram api。我希望使用客户端身份验证,但是我遇到了访问令牌的问题,因为它不会作为参数返回。
我在这里提出要求:
应用程序被正确地重定向到令牌页面,我甚至可以在URL中看到令牌。但是当我试图解析它时,它就是空的。
@route('/oauth_callback')
def success_message():
token = request.GET.get("access_token")
print token.values()
return "success"
token.values()返回一个空列表。
ps:请记住,当我尝试使用服务器端身份验证执行相同的操作时,我可以成功获取代码并将其交换为令牌。
答案 0 :(得分:1)
一旦你对Instagram api进行查询,你必须收到以下回复吗?
#之后的部分被称为 片段 而不是query_string参数,并且您无法在服务器端检索该信息瓶。
要实际获取片段,请使用bottle.request.urlparts
<强> urlparts 强>
url字符串为urlparse.SplitResult元组。元组 包含(scheme,host,path,query_string和fragment),但是 片段始终为空,因为它对服务器不可见。
使用SDK,最好是服务器端操作 - &gt; https://github.com/facebookarchive/python-instagram
如果您将采用这种方法,那么管理一个解析访问令牌的JavaScript,然后发布到您的瓶子api供我消费,我不建议......
来自https://instagram.com/developer/authentication/
客户端(隐式)身份验证
如果您正在构建一个没有服务器组件的应用程序(a 纯粹的javascript应用程序,例如),你会发现它是 无法完成上面的第三步以接收您的access_token 无需将密码存储在客户端上。你应该 永远不会将您的client_id秘密传递或存储到客户端。对于这些 情况有隐式认证流程。