You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用Instagram OAuth获取Access Token报错:Matching code was not found or was already used

解决Instagram OAuth获取Access Token时的"Code Not Found/Used"错误

我帮你梳理几个最可能导致这个OAuthException的原因和对应的解决办法:

  • 注意code的时效性:Instagram授权code的有效期只有短短5分钟左右,如果你拿到code后没有立刻发起换token的请求,大概率已经过期失效了。拿到code后马上执行获取access token的请求,别拖沓。

  • code是一次性的:哪怕你第一次用这个code请求token失败了,这个code也会被系统标记为已使用,无法再次调用。遇到这种情况,只能重新走一遍授权流程,获取新的code再尝试。

  • 确保参数完全一致

    • 请求access token时的client_idclient_secretredirect_uri必须和你获取code时用的完全匹配,包括大小写、是否带末尾斜杠这类细节都不能出错。
    • 必须严格设置grant_typeauthorization_code,这个参数写错的话也会触发异常。
  • 检查请求方式和格式

    • 获取access token的请求必须用POST方法,绝对不能用GET。
    • 参数要放在请求体中(用form-data或者x-www-form-urlencoded格式),不要拼在URL里,既避免敏感信息泄露,也能防止参数转义导致的问题。
  • 测试环境的用户限制:如果是在沙箱测试阶段,要确认你用来授权的账号已经被添加到App的测试用户列表中,未添加的测试账号无法正常完成授权流程。

给你一个正确的请求示例(用curl):

curl -X POST \
  https://api.instagram.com/oauth/access_token \
  -F client_id=你的Client-ID \
  -F client_secret=你的Client-Secret \
  -F grant_type=authorization_code \
  -F redirect_uri=你的Redirect-URI \
  -F code=刚获取的授权code

内容的提问来源于stack exchange,提问作者raien

火山引擎 最新活动