4

我正在尝试从Node JS应用程序中的GSuite 警报中心 API获取警报列表。我在IAM & Admin页面创建了一个服务帐户,选中了复选框,并生成了一个设置了访问密钥的 JSON 文件。然后我去了并通过其客户端 ID 在范围内注册了服务帐户。Enable G Suite Domain-wide DelegationAdmin Console -> Security -> API controls -> Domain-wide Delegationhttps://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' });

结果,我只收到另一条错误消息:请求包含无效参数。

我做错了什么?

4

0 回答 0