我正在尝试从Node JS应用程序中的GSuite 警报中心 API获取警报列表。我在IAM & Admin页面创建了一个服务帐户,选中了复选框,并生成了一个设置了访问密钥的 JSON 文件。然后我去了并通过其客户端 ID 在范围内注册了服务帐户。Enable G Suite Domain-wide Delegation
Admin Console -> Security -> API controls -> Domain-wide Delegation
https://www.googleapis.com/auth/apps.alerts
代码取自google-api-nodejs-client中提供的示例,基本上看起来像
const { google } = require('googleapis');
const alertcenter = google.alertcenter('v1beta1');
const auth = new google.auth.GoogleAuth({
keyFile: 'Path/to/my/file/with/accessKeys'
scopes: ['https://www.googleapis.com/auth/apps.alerts'],
});
const client = await auth.getClient();
google.options({auth: client});
const res = await alertcenter.alerts.list();
我从 API 中得到的是“无法从请求或调用者身份中推断出客户 ID”。错误信息。
我试图将客户 ID 作为参数传递给 list() 方法,因为它被描述为它的合法参数。像这样
const res = await alertcenter.alerts.list({ customerId: 'my-customer-id' });
结果,我只收到另一条错误消息:请求包含无效参数。
我做错了什么?