在未登录浏览器连接 Instagram 时,OAuth Instagram API 删除重定向 URL 中的参数

Posted

技术标签:

【中文标题】在未登录浏览器连接 Instagram 时,OAuth Instagram API 删除重定向 URL 中的参数【英文标题】:OAuth Instagram API remove parameter in redirect URL when connect Instagram without logged in browser 【发布时间】:2018-11-17 13:47:45 【问题描述】:

如果用户尝试在 OAuth 窗口中登录,Instagram API(经典,而非图形)会丢失重定向 URL 中的自定义参数。

由于重定向 URI 中的自定义参数丢失,Instagram 获取访问令牌返回“重定向 URI 不匹配错误”

来自 Instagram 的回应:

'error_code'=>90001, 'error_message'=>'POST https://api.instagram.com/oauth/access_token/: 400: OAuthException: Redirect URI doesn't match original redirect URI'

如果用户在进行 OAuth 之前登录 Instagram,一切正常。

【问题讨论】:

欢迎来到 Stack Overflow!请阅读How to Ask 页面并更新您的问题。 有同样的问题。删除redirecturl中的参数值。 我最近也看到了同样的问题 重定向 URL 必须与您注册的匹配。为什么需要自定义参数?你在什么操作系统或平台上?通常很容易跟踪身份验证的整个进度,因此不需要参数。我做了很多 Instagram Auth。 对此有任何更新或解决方法吗? 【参考方案1】:

只需将用于获取令牌的 uri 更改为您在 OAuth 窗口中登录时获得的损坏的重定向 url。这将给出适当的响应。但是当然你会丢失你的查询参数。

您始终可以通过检查您传递的重定向 URL 是否已更改,在您的应用程序中添加特定规则。

这显然不是解决办法,而是一种解决方法。

【讨论】:

【参考方案2】:

您是否尝试过写信给 Instagram 支持?看起来像 Instagram 的错误。

另一种解决方法:您可以在参数state 中传递此自定义参数(请参阅https://www.instagram.com/developer/authentication/)

【讨论】:

【参考方案3】:

我有同样的问题,但是当我尝试报告它时,平台对我说“支持已被弃用”。我找到的解决方法是将参数保存在浏览器的 sessionStorage 中。

【讨论】:

以上是关于在未登录浏览器连接 Instagram 时,OAuth Instagram API 删除重定向 URL 中的参数的主要内容,如果未能解决你的问题,请参考以下文章

Instagram WebView 阻止 FB 登录

Instagram API 登录错误 - 无法加载此页面

安卓模拟器上的 Instagram

Firebase 提供商登录在 facebook/messenger/instagram 应用内浏览器 webview 中不起作用。错误 403:disallowed_useragent

Instagram应用程序登录时背景如何变化?

AutoIt 脚本可以在未登录时作为计划任务运行吗?