Instagram API 未找到或已使用匹配代码

Instagram API Matching code was not found or was already used

我在使用 Instagram API 的实时服务器上看到此错误。

{
   "Error":true,
   "message":"Matching code was not found or was already used."
}

我在此处阅读了一些清除缓存的建议,但这并不能解决问题。我也无法直接在 Instagram 网站上提交支持票,因为我在尝试提交票时收到错误消息。

我有同样的问题,我想这是来自 Instagram 我在开发者 > 管理客户 > 报告问题的客户面板中报告了一个问题。 你可以让他们尽快解决这个问题。

这是因为您的 Instagram 应用存在安全限制。您可以通过在“安全”选项卡下为您的 Instagram 应用程序取消选中“禁用隐式 OAuth”来选择允许它。

https://news.ycombinator.com/item?id=13178789 有很多开发人员抱怨同样的问题。我不认为取消选中 "Disable implicit OAuth" 可以解决问题,因为我已经尝试过但没有用。

您能做的最好的事情就是使用您的客户 ID 向 Instagram 提交报告,向他们施加一些压力来解决此问题。

Instagram OAuth 流程肯定有问题。由于某种原因,返回的授权代码似乎不起作用,这很可能是他们需要最终修复的网络相关问题。

我的理论是,生成的授权码不会分发到所有 Instagram API 服务器,如果你碰巧遇到坏节点,那你就倒霉了。

不过,我最近发现了一个不依赖授权码的解决方案。如果您使用客户端身份验证,那么您将能够在不使用授权代码的情况下检索访问令牌。它不太安全,但作为临时修复非常有效。

您只需将 response_type=code 更改为 response_type=token。令牌响应类型将使用此 URL 结构将用户重定向回您的网站:

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

我建议使用 JavaScript 从 URL 客户端获取访问令牌,然后将其传递到您网站上的端点。例如。 /callback?accesstoken={accessToken}。这是必需的,因为散列中的内容不会传递到服务器。

示例:

<script>
    if (window.location.hash && window.location.hash.indexOf('#access_token=') !== -1) {
        var accessToken = window.location.hash.replace('#access_token=', '');
        window.location.href = '/callback?accesstoken=' + accessToken;
    }
</script>

上面的代码片段是从 https://news.ycombinator.com/item?id=13178789

的解决方案中复制并稍作修改的

您可以在 https://www.instagram.com/developer/authentication/ Client-Side (Implicit) Authentication

下阅读有关 Instagram 客户端身份验证的更多信息

我刚遇到同样的问题。不知道为什么,但对我来说,从 oauth/authorize/? 返回的 code 最后有 2 个特殊字符 - “#_” .删除这些后,我的 code 起作用了。