Per the 推荐在 defaultauth 示例中,我尝试访问已为其创建服务帐户的域的目录 api。这是我尝试连接的代码:
import { google } from 'googleapis'
const authClient = await google.auth.getClient({
scopes: ['https://www.googleapis.com/auth/admin.directory.user.readonly']
})
const service = google.admin('directory_v1')
console.log(
await service.users.list({
auth: authClient,
domain: <redacted>
})
)
但是,当我尝试连接时,我收到一条错误消息Error: Not Authorized to access this resource/api
。如果我删除creds.json
文件输入~/.google
,错误更改为无法找到凭据文件。另外,我可以使用相同的文件访问存储桶,因此我非常确定我的本地环境设置正确,身份验证明智。在过去的几天里,我还与支持团队 G Suite API 团队的某人一起工作,他们向我保证我的域上的设置正确。
在网上浏览后,我似乎缺少的是在尝试连接我的服务帐户时模拟管理员帐户。我在网上找到了一些使用 JWT 身份验证策略执行此操作的示例,但我想继续使用默认的身份验证客户端,以便抽象出实现细节。这可能吗?如果是这样,我需要改变什么?我尝试过设置subject
, and delegationEmail
在这两个电话中(getClient
and list
).
任何帮助将不胜感激。
只需设置客户端对象的主题:
authClient.subject = 'your email address'
Google 的 API 文档因语言而异。没有标准。 PHP 客户端中记录的某些内容可能在 Nodejs 客户端中丢失,并且可能需要几个小时才能找出如何执行此操作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)