【问题标题】:Instagram Client Side Authentication using Python使用 Python 的 Instagram 客户端身份验证
【发布时间】:2018-04-06 03:18:29
【问题描述】:

我目前正在从事一个瓶子项目,并将使用 Instagram api。我希望使用客户端身份验证,但是我遇到了访问令牌问题,因为它没有作为参数返回。

我在这里提出请求:

https://api.instagram.com/oauth/authorize/?client_id=client_id&redirect_uri=redirect_uri&response_type=token&scope=basic+follower_list

应用程序被正确重定向到令牌页面,我什至可以在 url 中看到令牌。但是当我尝试解析它时,它是空的。

@route('/oauth_callback')
def success_message():

token = request.GET.get("access_token")

print token.values()
return "success"

token.values() 返回一个空列表。

ps:请记住,当我尝试对服务器端身份验证执行相同操作时,我可以成功获取代码并将其交换为令牌。

【问题讨论】:

    标签: python bottle urlparse


    【解决方案1】:

    一旦您对 Instagram api 进行查询,您一定会收到以下回复?

    http://your-redirect-uri#access_token=ACCESS-TOKEN

    # 之后的部分被称为 fragment 而不是 query_string 参数,您无法在服务器端检索该信息瓶子。

    要实际获取片段,使用bottle.request.urlparts

    urlparts

    url 字符串作为 urlparse.SplitResult 元组。元组 包含(方案、主机、路径、query_string 和片段),但 片段总是空的,因为它对服务器不可见。

    使用 SDK,最好使用服务器端操作 -> https://github.com/facebookarchive/python-instagram

    如果您打算采用这种方法,那么管理一个解析访问令牌的 JavaScript,然后发布到您的瓶子 api 以供您使用,我不推荐...

    来自https://instagram.com/developer/authentication/

    客户端(隐式)身份验证

    如果您正在构建一个没有服务器组件的应用程序(一个 例如,纯粹的 javascript 应用程序),您会注意到它是 无法完成上述第三步以接收您的 access_token 也不必将秘密存储在客户端上。你应该 永远不要将您的 client_id 秘密传递或存储到客户端。对于这些 存在隐式身份验证流程的情况。

    【讨论】:

    • 感谢您的详细回答。多亏了剑桥分析,所有这些都浪费了:(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-17
    • 2016-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多