【问题标题】:Instagram returning "Matching code was not found or was already used" when using OAuthInstagram 在使用 OAuth 时返回“未找到或已使用匹配代码”
【发布时间】:2016-11-10 20:31:35
【问题描述】:

我正在尝试使用 Instagram OAuth,使用的开发者文档位于

https://www.instagram.com/developer/authentication/

第 1 步和第 2 步工作没有任何问题,所以我有我的Client-IDClient-SecretRedirect-URI 和代码。

但每次我尝试获取 Acces Token 时都会收到以下错误:

{
"code": 400, 
"error_type": "OAuthException", 
"error_message": "Matching code was not found or was already used."
}

任何提示如何解决这个问题?

【问题讨论】:

  • 目前我们在一些生产服务器上遇到了同样的事情。不过在本地工作得很好。
  • 我的开发机器上一整天都收到这条消息。
  • 我按照@miguelpelota 的指示,通过清除浏览器(我打开新的隐身窗口)来完成 Ravi-Misra 的技巧。这对我有用。
  • 这几天我在服务器日志中发现了这个问题
  • 这几天似乎是 Instagram 的一个大问题。不确定该怎么做。

标签: oauth instagram


【解决方案1】:

我们遇到了同样的问题。似乎退出 Instagram,然后在我们退出 Instagram 后尝试通过我们的网站使用 Instagram OAuth 是一种解决方法。

【讨论】:

  • 太好了,成功了!我退出了 Instagram 并执行了第 1 步。在此过程中,我不得不再次登录。但是有了这个技巧,我终于完成了第 3 步。非常感谢!
  • 完成了这项工作......在浪费了数小时搜索解决它的网络之后。只需注销并通过 api 登录。看来您必须为用户存储代码?在那种情况下,错误消息对我来说似乎有点扭曲。
  • 我认为注销不能解决问题。我在生产环境中遇到了同样的问题。它适用于某些用户,但不适用于其他一些用户。
  • 它对我不起作用。刷新页面时出现错误:400 和消息 Matching code was not found or was already used
【解决方案2】:

我们从昨天开始遇到同样的问题(经过几个月的正常工作) - 昨天通过https://www.instagram.com/developer/clients/manage/ 上的“报告问题”功能将其报告为问题,我鼓励您也这样做。

尚未收到回复,但似乎是他们的结局有问题,而不是我们正在做的事情。

编辑:它在我们的开发服务器上也可以正常工作(它们使用不同的 IP 与 IG 的 API 交互),但不能从我们在生产服务器上可用的任何 IP 在我们的生产服务器上工作。

EDIT2:(2016 年 7 月)刚刚经过测试,它又神秘地开始在我们的生产服务器上运行。尚未回复 Instagram 的支持票。

EDIT3:(2016 年 12 月)现在它再次失败并显示相同的消息......似乎它又是 Instagram 的结束。我们无能为力。令人沮丧。

【讨论】:

  • 太好了 - 我还链接到我报告中的主题。对我来说似乎很普遍 - 我刚刚尝试使用 Woobox(流行的 Facebook 页面插件),他们的 Instagram 集成也不起作用。
  • 我也已经在几天前写过它们了,从那以后就没有任何回音了......
  • 刚刚经过测试,它又神秘地开始在我们的生产服务器上运行。尚未回复 Instagram 的支持票。
  • 现在它再次失败并显示相同的消息......似乎它又是 Instagram 的终结。我们无能为力。令人沮丧。
  • 似乎有些帐户很好,有些则不然。我能够使用一个沙盒帐户进行身份验证,但随后创建者收到错误消息......然后它几乎可以在它给我令牌的地方工作,但随后令牌立即无效。尝试完全撤销应用访问权限,还是不行。
【解决方案3】:

登录 Instagram,然后从 API 文档 (https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=code) 完成第 1 步,然后按照重定向并从 URL 复制代码,然后退出我的帐户,然后完成第 3 步:

curl -F 'client_id=CLIENT_ID' \
-F 'client_secret=CLIENT_SECRET' \
-F 'grant_type=authorization_code' \
-F 'redirect_uri=AUTHORIZATION_REDIRECT_URI' \
-F 'code=CODE' \
https://api.instagram.com/oauth/access_token

这对我有用。

【讨论】:

    【解决方案4】:

    我们昨天也遇到了同样的问题,看起来清除浏览器(或新的隐身窗口)可以解决问题。虽然,我们通过移动浏览器进行身份验证的移动应用程序运行良好。

    【讨论】:

      【解决方案5】:

      更新:删除了我所有的浏览历史,清除了缓存等。就像它是一个全新的浏览器,现在它可以正常工作了。

      几周以来,我一直在研究身份验证 URL。测试并使用相同的存储令牌重新授权。也许存储的令牌对它们可以重复使用的次数有限制?

      ======

      今天遇到同样的问题。授权之前工作正常 - 现在我得到相同的“匹配代码...”响应。

      反复登录和退出我的 Instagram 帐户,创建新的应用程序 ID 并禁用/启用隐式 Oauth - 均未成功。

      我的 Instagram 帐户中的“授权应用程序”视图报告我的应用程序确实已获得授权,但我无法调用 API。通过隐身窗口进行身份验证返回成功响应,但这不是解决方案。

      尝试通过他们的“报告问题”表单向 Instagram 报告,但它不允许我提交表单。

      【讨论】:

      • 我们昨天也遇到了同样的问题,当我们第一次清除浏览器缓存或使用其他浏览器时它工作但再次尝试失败,所以它不是完全证明解决方案,但绝对是临时解决方案。我也提出了这个问题
      【解决方案6】:

      我收到了同样的错误信息。在尝试了所有解决方法 2 小时后,我意识到我使用的是 FB 密码而不是 IG。在尝试任何其他解决方案之前,请先仔细检查。

      【讨论】:

        【解决方案7】:

        已解决!只需退出 Instagram 并重试。这对我有用。

        【讨论】:

        • 对我来说都没有......有没有人为此找到解释或解决方案。没有,这个帖子的答案对我有用。
        • @lonut 我在上面添加了我的解决方案。看看吧。
        【解决方案8】:

        我通过在授权用户的后端/服务器端创建服务解决了这个问题。

        我的后端 API 是一个 ruby​​ on rails 应用程序。这里有一段代码sn-p来理解。

          def token
            @response = Instagram.get_access_token(params[:code], redirect_uri: mobile_token_url)
            instagram_user = InstagramUserCreator.new(user_params)
            if instagram_user.find_or_create
              redirect_to "taddarmobileapp://?token=#{instagram_user.user.token}"
            else
              redirect_to 'taddarmobileapp://'
            end
          end
        

        我只是将令牌存储在手机上并使用它来授权用户访问我的后端 API。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-05-01
          • 2015-07-03
          • 1970-01-01
          相关资源
          最近更新 更多