尽管使用了刷新令牌,但 Google Ads API 仍显示“令牌已过期或撤销”

时间:2021-02-10 14:34:34

标签: python-3.x google-ads-api refresh-token

我已经根据此处的手册设置了整个 Google Ads 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}'

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

1 个答案:

答案 0 :(得分:0)

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