Google API 刷新令牌已过期或被撤销

时间:2021-04-22 15:54:25

标签: oauth google-api google-ads-api refresh-token

我正在使用 Google Ads php 库 (https://github.com/googleads/googleads-php-lib) 来管理我自己的 google ads 帐户,按照此处的 Google 说明进行操作 (https://developers.google.com/adwords/api/docs/guides/first-api-call)

(实际上我已经这样做了很多年没有问题,但我最近切换到在 Google Cloud Platform 中使用不同的项目,所以我不得不更新我的凭据并获得一个新的刷新令牌)

为了获得一个新的刷新令牌,我运行了名为 GetRefreshTokenWithoutIniFile.php 的 php 脚本(它允许我授予离线访问权限并检索一个新的刷新令牌,我将其存储在一个文件中 auth.ini) {1}} 以备将来使用)。

刷新令牌持续了几天,然后我看到了这个错误:

{
    "error" : "invalid_grant",
    "error_description" : "Token has been expired or revoked."
}

我已经使用上述方法多年,刷新令牌从未过期。但是,它现在似乎每隔几天就会过期。我当然不会“用完”刷新令牌(我只请求一个),并且用户没有撤​​销访问权限(用户是 me)。出于这个原因,这些类似的答案对我没有帮助:

还有什么想法吗?

1 个答案:

答案 0 :(得分:0)

更新:这并没有解决问题

根据 Token has expired or revoked - Google Ads,除非应用处于“生产”模式,否则刷新令牌不会持续存在。

推荐的解决方案是从 Google API 控制台选择“发布应用”。这个我试过了,可惜在成功使用刷新令牌几天后,刷新令牌又过期了。