You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

获取Pinterest Access Token时遇invalid_grant错误求助

解决Pinterest OAuth获取Access Token时的"invalid_grant"错误

我之前也踩过Pinterest OAuth的这些坑,结合你的情况(Postman自动OAuth流程能成功,但手动调用接口就报错),给你梳理几个最可能的原因和对应的解决办法:

1. 授权码(code)已失效或重复使用

Pinterest的授权码是一次性的,而且有10分钟左右的有效期:

  • 如果你已经通过Postman的OAuth流程用过这个code,再手动调用token接口肯定会返回invalid_grant,因为code已经被消耗了。
  • 解决办法:重新走授权流程生成一个全新的code,拿到后立刻调用token接口,不要超时。

2. 请求参数的传递方式错误

你现在把参数拼在URL的query里,但Pinterest的token接口要求参数放在**请求体(Body)**中,并且使用application/x-www-form-urlencoded格式编码:

  • 错误的做法:把参数直接加在URL末尾(你当前的写法)
  • 正确的做法:将参数放在请求体里,以表单形式提交。比如用curl的正确写法:
    curl -X POST https://api.pinterest.com/v1/oauth/token \
      -d "grant_type=authorization_code" \
      -d "client_id=888888888888888" \
      -d "client_secret=9999999999999999999999" \
      -d "code=00000000000000"
    
  • 如果你用Postman手动调用,要选择Body标签下的x-www-form-urlencoded,把参数一个个填进去,而不是拼在URL里。

3. 回调地址(redirect_uri)不一致

获取授权码时使用的redirect_uri,必须和调用token接口时的redirect_uri完全一致:

  • 如果你在获取code时指定了redirect_uri,那调用token接口时也要传一模一样的地址;
  • 如果你的应用在开发者控制台里配置了固定的回调地址,那获取code时必须用这个地址,否则会触发权限验证失败。

4. 请求头配置缺失

确保请求头里的Content-Type设置为application/x-www-form-urlencoded:

  • Postman的自动OAuth流程会自动处理这个头,但手动调用或Java代码里很容易漏掉,导致服务器无法正确解析参数,进而返回invalid_grant。
  • 比如Java用RestTemplate的话,要设置HttpHeaders的Content-Type,然后用MultiValueMap来存放参数。

建议你先从重新生成新的授权码+改用请求体传参数这两点开始排查,这是最常见的触发invalid_grant的原因。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:00:25