我已经根据此处的手册设置了整个 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}'
所以事情变得更加复杂......
答案 0 :(得分:0)
正如@fatima Ajij 指出的,整个问题/问题在于设置: 看看他的回答: Token has expired or revoked - Google Ads 非常感谢,法蒂玛 Ajij!