我有一个SPA,应该通过gapi
与物联网核心和云发布/订阅进行交互。
首先,我只使用IoT Core。我在api下的应用配置中添加了必要的作用域;服务/凭据和我的gapi
客户端初始化调用记录在这里。
它工作正常,OAuth同意屏幕显示新的范围,IoT Core API调用正在工作。
现在我想添加云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帐户中应用程序的所有权限
仍然没有运气。有趣的是,尽管现在这两个范围都被添加到云端的应用程序中,但在撤销应用程序权限并重新登录后,同意屏幕只请求物联网核心范围的权限。Pub/Sub作用域在这里没有显示。
你知道我错过了什么吗?
找到问题。登录是由没有添加Pub/Sub范围的代码的另一部分发起的。