Instagram在使用OAuth时返回“未找到匹配代码或已使用”

时间:2016-07-08 09:58:52

标签: oauth instagram

我正在尝试使用

中的开发人员文档 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."
}

如何解决这个问题?

8 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:6)

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

然而,要回过头来看,但似乎他们的结局有问题,而不是我们正在做的事情。

编辑:它对我们的开发服务器(使用不同的IP与IG的API交互)也很好,但是我们的生产服务器上没有使用我们生产服务器上提供的任何IP。

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

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

答案 2 :(得分:1)

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

这对我有用。

答案 3 :(得分:1)

我们也遇到了与昨天相同的问题,看起来像清除浏览器(或新的隐身窗口)做的伎俩。虽然,移动应用程序我们通过移动浏览器进行身份验证,工作正常。

答案 4 :(得分:1)

更新:删除了我的所有浏览记录,清除了缓存等。就像它是一个全新的浏览器一样,现在它没有任何问题。

我已经在auth网址上打了几个星期了。测试并使用相同的存储令牌重新授权。也许存储的令牌对它们可以重复使用的次数有限制?

==

遇到与今天相同的问题。授权工作得很早 - 现在我得到相同的匹配代码......'响应。

反复登录我的Instagram帐户,创建一个新的应用程序ID并禁用/启用Implicit Oauth - 一切都没有成功。

授权应用程序'在我的Instagram帐户中查看我的应用程序确实已获得授权,但我无法调用API。通过隐身窗口进行身份验证返回了成功的响应,但它不是解决方案。

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

答案 5 :(得分:1)

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

答案 6 :(得分:0)

解决了!只需退出Instagram并再试一次。这对我有用。

答案 7 :(得分:0)

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

我的后端API是rails应用程序上的ruby。以下是要了解的代码段。

  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。