【问题标题】:Instagram API: how to automatically receive access token in Java application?Instagram API:如何在 Java 应用程序中自动接收访问令牌?
【发布时间】:2016-03-26 19:45:23
【问题描述】:

大家好!

我正在用 Java 编写一个应用程序,它通过他们的 API 从 Instagram 服务器检索信息、积累信息并构建可视化地图。 问题是我无法自动化身份验证过程。 Instagram 官方 API 文档指出: 为了接收 access_token,您必须执行以下操作:

将用户引导至我们的授权网址。 如果用户未登录,他们将被要求登录。 系统将询问用户是否愿意授予您的应用程序访问她的 Instagram 数据的权限。 服务器将以您选择的两种方式之一重定向用户:"

因此,用户必须手动登录他/她的帐户。我相信这样做是为了向在用户行为上使用 Instagram API 的应用授予权限,例如,如果它在他/她的帐户中发布一些帖子。但是,我不会使用任何用户的个人帐户。事实上,我为我的应用程序设置了一个单独的帐户并注册了应用程序(我得到了 client_id、client_secret 并设置了 redirect_uri)。所以我只想使用这些凭据来获取更新的访问令牌并向 Instagram 发布一些 REST API 帖子。

我现在做什么,我发出一个 GET 请求,接收一个登录 html 页面,解析它,插入我的帐户凭据,然后在我发出一个 POST 请求后,我收到 400 代码:

向 URL 发送“GET”请求:instagram.com/oauth/authorize/?client_id=CLIENT_ID&redirect_uri=localhost&response_type=code

响应代码:200 正在提取表单数据...

向 URL 发送“POST”请求:instagram.com/oauth/authorize/?client_id=CLIET_ID&redirect_uri=localhost&response_type=code 请求内容:CONTENT&username=LOGIN&password=PASSWORD&=Log+in

响应代码:302

向 URL 发送“POST”请求:www.instagram.com/oauth/authorize/?client_id=CLIENT_ID&redirect_uri=localhost&response_type=code 请求内容:CLIENT_ID&username=LOGIN&password=PASSWORD&=Log+in

响应代码:400

我不明白为什么要再重定向一次。我假设这是因为一些安全问题,也许是一些隐藏的领域......你有什么想法吗? 我对这个问题有任何想法和可能的解决方案。谢谢!

【问题讨论】:

    标签: java instagram instagram-api


    【解决方案1】:

    从请求中我可以理解,它使用 oath 协议,这对于 google 、 twitter 和更流行的站点身份验证协议很常见。

    为什么不试试像

    这样的誓言库

    https://github.com/google/google-oauth-java-client

    【讨论】:

    • 感谢您的链接!我会尝试一下并很快报告成功
    猜你喜欢
    • 2017-09-19
    • 1970-01-01
    • 2011-04-30
    • 1970-01-01
    • 2023-04-05
    • 2015-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多