google-cloud-recommendation 有时会返回 UNAUTHENTICATED 错误
Posted
技术标签:
【中文标题】google-cloud-recommendation 有时会返回 UNAUTHENTICATED 错误【英文标题】:google-cloud-recommendation Sometime returns UNAUTHENTICATED error 【发布时间】:2021-03-06 01:35:37 【问题描述】:我正在使用我的网络应用程序中的 userEvents.write 方法。
我发送了一个如下 JSON 请求,其中 Authorization 标头来自 gcloud auth application-default print-access-token
命令。
"eventType": "detail-page-view",
"visitorId": "xxxxxxxxxx.xxxxxxxxxxxx",
"eventTime": "2021-03-06T09:13:58+09:00",
"experimentIds": [
"Gie-xxxxxxxxxxxxxxxxxxxxxxxx"
],
"userInfo":
"userId": "",
"ipAddress": "xxx.xxx.xxx.xxx",
"userAgent": "Mozilla/5.0 (Linux; android 11; Pixel 4a (5G)) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/88.0.4324.181 Mobile Safari/537.36",
"directUserRequest": false
,
"uri": "https://xxxxx.net/aaaaaa/item/196160",
"referrerUri": "https://xxxxxxxx.net/item/196160",
"productDetails": [
"product":
"id": "196160"
]
请求网址是这样的。
https://retail.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/userEvents:write
在大多数情况下,它进展顺利。但是,有时会在下面返回错误。
"error":
"code": 401,
"message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.googl
e.com/identity/sign-in/web/devconsole-project.",
"status": "UNAUTHENTICATED"
此错误在应用重启后不再出现,并在几天后再次出现。 为什么会出现这个错误?我该如何解决?
【问题讨论】:
【参考方案1】:我相信用于身份验证方法的Application Default Credentials 在您运行应用程序时未获得正确的凭据。
可能无法正常工作的原因是访问令牌的生命周期有限。正如你所说的错误会在一段时间后出现,最可能的解释是你的令牌已经过期,你需要refresh它。如果您的应用程序需要在生命周期之后访问 Google API 单个访问令牌,它可以获得一个刷新令牌。刷新 令牌允许您的应用程序获取新的访问令牌。
查看official documentation 以获取 OAuth 2.0 访问令牌以及如何针对不同语言对其进行配置。
【讨论】:
以上是关于google-cloud-recommendation 有时会返回 UNAUTHENTICATED 错误的主要内容,如果未能解决你的问题,请参考以下文章