Google 广告 API 显示 "Token has been expired or revoked" 尽管使用了刷新令牌

Google Ads API says "Token has been expired or revoked" despite using a refresh token

我已经根据此处的手册设置了整个 Google 广告 API:https://developers.google.com/google-ads/api/docs/client-libs/python/oauth-desktop?hl=en

我得到了我的刷新令牌并将其放入我的 google-ads.yaml 文件中,该文件看起来完全像这样: https://github.com/googleads/google-ads-python/blob/master/google-ads.yaml。我还将 client_id、developer_token 和 client_secret 放在文件中的相应位置。

一切顺利,例如我可以要求所有活动: https://developers.google.com/google-ads/api/docs/samples/get-campaigns#python。我还可以使用 API.

的其他服务

每次我使用 API 时,我都会使用以下代码通过客户端访问它:

from google.ads.google_ads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage(path_to_google_ads_yaml_file)

正如我所说的那样有效。

几天后,我再次尝试连接,但出现以下错误:

 “error”: “invalid_grant”, “error_description”: “Token has been expired or revoked.”

所以我再次获取了一个新的刷新令牌 (https://developers.google.com/google-ads/api/docs/client-libs/python/oauth-desktop?hl=en),这样一切又都正常了。

一天后我又遇到了同样的错误。所以我的问题是:刷新令牌的用途是什么?我认为它允许我访问 API 而无需请求新令牌或刷新令牌!?

现在,我再次尝试连接到 API(尽管上次没有成功),现在我遇到了一个更糟糕的新错误:

'invalid_grant: Bad Request', '{\n  "error": "invalid_grant",\n  "error_description": "Bad Request"\n}'

所以事情变得更加复杂...

正如@fatima Ajij 所指出的,整个问题/问题在于设置: 看看他的回答: Token has expired or revoked - Google Ads 非常感谢,fatima Ajij!