我使用Instagram API从我的实时服务器看到此错误。
{
"Error":true,
"message":"Matching code was not found or was already used."
}
我已经阅读了一些关于清除缓存的建议,但这并不能解决问题。我也无法直接在Instagram网站上提交支持票,因为我在尝试提交票证时收到错误消息。
答案 0 :(得分:6)
有许多开发者在https://news.ycombinator.com/item?id=13178789抱怨同样的问题。我不认为取消选中"禁用隐含的OAuth"解决了这个问题,因为我已经尝试过这个问题并且它没有用。
您可以做的最好的事情是使用您的客户ID向Instagram提交报告,以便为解决此问题而施加压力。
答案 1 :(得分:2)
我有同样的问题,我想这是来自Instagram我在开发人员的客户面板中报告了一个问题>管理客户>报告问题。 您可以尽快解决此问题。
答案 2 :(得分:1)
Instagram OAuth流程肯定存在问题。返回的授权码似乎不会因某种原因而起作用,很可能是他们需要修复的网络相关问题。
我的理论是,生成的授权代码不会分发给所有Instagram API服务器,如果您碰巧遇到了一个糟糕的节点,那么您将失去运气。
但是,我最近发现了一个不依赖于授权代码的解决方案。如果您使用客户端身份验证,那么您将能够在不使用授权代码的情况下检索访问令牌。它的安全性较低,但作为临时修复工作效果很好。
您只需将 Item outDict;
switch(name) {
case "simpleDict":
var simpleDict = _dataLayer.GetSimpleDict();
// ...
outDict = simpleDict;
break;
case "extDict":
var extDict = _dataLayer.GetExtDict();
// ...
outDict = extDict;
break;
// ... and a few more dictionaries
}
更改为response_type=code
即可。令牌响应类型将使用此URL结构将用户重定向回您的网站:
response_type=token
我建议使用JavaScript从URL客户端获取访问令牌,然后将其传递到您网站上的端点。例如。 http://your-redirect-uri#access_token=ACCESS-TOKEN
。这是必需的,因为散列中的内容不会传递给服务器。
示例:
/callback?accesstoken={accessToken}
上面的代码段会从https://news.ycombinator.com/item?id=13178789
的解决方案中复制并稍加修改您可以在<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>
答案 3 :(得分:0)
我只是遇到了同样的问题。不知道为什么,但是对我来说,从 oauth / authorize /?返回的 code 在结尾处有2个特殊字符-“ #_”。删除这些代码后,我的 code 起作用了。
答案 4 :(得分:-1)
这是由于您的Instagram应用程序上存在安全限制。您可以选择取消选中&#34; 禁用隐式OAuth &#34;对于您的Instagram应用程序,在“安全”选项卡下。