【发布时间】:2021-12-11 20:33:59
【问题描述】:
我有一个 SPA,它应该通过 gapi 与 IoT Core和 Cloud Pub/Sub 交互。
首先我只使用了 IoT Core。我在 APIs & Services / Credentials 和我的 gapi 客户端初始化调用记录的 here 下的应用程序配置中添加了必要的范围。
运行良好,OAuth 同意屏幕显示新范围,IoT Core API 调用正常。
现在我想添加 Cloud Pub/Sub。再次将范围添加到应用程序配置和 gapi 初始化调用。这是gapi.client.init的论点:
{
apiKey: config.firebase.apiKey,
clientId: config.clientId,
discoveryDocs: [
'https://cloudiot.googleapis.com/$discovery/rest?version=v1',
'https://pubsub.googleapis.com/$discovery/rest?version=v1',
],
scope:
'https://www.googleapis.com/auth/pubsub https://www.googleapis.com/auth/cloudiot',
}
然而,当我调用 Pub/Sub API 时,我收到了以下响应:
{
"error": {
"code": 403,
"message": "Request had insufficient authentication scopes.",
"status": "PERMISSION_DENIED"
}
}
这是我尝试过的:
- 注销然后重新登录
- 清除浏览器缓存和 cookie
- 从 Google 帐户中的应用撤消所有权限
仍然没有运气。有趣的是,虽然现在两个范围都添加到云端的应用程序中,但在撤销应用程序权限并重新登录后,同意屏幕仅请求 IoT Core 范围的权限。 Pub/Sub 范围没有显示在那里。
任何想法我缺少什么?
【问题讨论】:
标签: javascript google-cloud-platform google-oauth google-authentication google-account