当我尝试从Directory API访问用户列表时,我遇到错误403: Not Authorized to access this resource/api
。
我按照这里的步骤进行了操作:https://developers.google.com/admin-sdk/directory/v1/guides/delegation
这是我使用的代码
const google = require('googleapis').google;
const directory = google.admin('directory_v1');
const key = require('./creds.json');
const scopes = [ "https://www.googleapis.com/auth/admin.directory.user", "https://www.googleapis.com/auth/admin.directory.group", "https://www.googleapis.com/auth/admin.directory.orgunit"]
jwtOptions = {
email: key.client_email,
key: key.private_key,
scopes: scopes,
}
const jwtClient = new google.auth.JWT(jwtOptions)
jwtClient.authorize( (err, tokens) => {
if (err) {
console.log(err);
return;
}
// Make an authorized request to list Drive files.
directory.users.list({
auth: jwtClient,
domain: 'mydomain.com',
}, (err, resp) => {
if (err) {
console.log('error')
console.log(err.errors)
} else {
console.log('success')
}
});
});
我错过了什么?
答案 0 :(得分:0)
委派后,您必须授权您的服务帐户: 转到安全>高级设置>管理API客户端访问 然后添加您的服务帐户ID和范围(以逗号分隔)。 等待24小时,然后您就可以将服务帐户用于目录api。
Google有一些时间延迟,请耐心等待。
答案 1 :(得分:-1)
最后,我们尝试切换到另一种语言(PHP),并且代码正常运行。 Google Node SDK似乎有问题,我们已经报告了该问题。