生成Google Ads权限令牌后,调用google-ads-api遇invalid_grant错误
解决Google Ads API初始化时的invalid_grant错误
核心排查与修复步骤
刷新令牌失效
refresh_token会因以下情况作废:- 超过6个月未使用(谷歌默认有效期6个月,需保持离线访问权限并定期调用)
- 用户撤销了应用授权
- 同一用户重复授权同一应用,旧令牌被覆盖
修复:重新执行OAuth2授权流程,务必勾选离线访问选项,获取新的refresh_token。
配置文件参数错误
检查googleads.yaml的关键参数:client_id/client_secret需与谷歌云平台创建的OAuth2客户端完全一致refresh_token复制时无多余空格、换行或截断developer_token需为已通过审核的有效令牌(区分测试与正式环境)- 若使用MCC账号,
login_customer_id需填写无横杠的纯数字(如1234567890)
权限与账号关联问题
从截图确认:- OAuth2授权范围包含
https://www.googleapis.com/auth/adwords(Google Ads API必备权限) - 授权的谷歌账号拥有目标Google Ads账号的管理员/标准访问权限,确保账号已正确关联
- OAuth2授权范围包含
版本兼容性问题
确保google-ads库版本与API v14兼容,更新至最新稳定版:pip install --upgrade google-ads
验证方法
用curl手动校验refresh_token有效性(替换自身参数):
curl -d "client_id=你的客户端ID&client_secret=你的客户端密钥&refresh_token=你的刷新令牌&grant_type=refresh_token" https://oauth2.googleapis.com/token
若返回invalid_grant,则直接重新授权获取新令牌即可。另外需确认Google Ads后台API中心已启用API访问。
内容的提问来源于stack exchange,提问作者iamabhaykmr
相关产品推荐
相关产品推荐

