我在使用节点访问 Google Directory API 时遇到问题。我希望做的是从组中创建和删除用户(并创建和列出组及其用户)。在测试中,我设法毫无问题地访问了大多数 API,但目录是不可能的。
首先,我正在尝试做的事情是否可能?
其次,如果可能的话,这是我的代码示例;我错过了什么?
var google = require('googleapis');
var googleAuth = require('google-oauth-jwt');
var request = require('google-oauth-jwt').requestWithJWT();
request({
url: 'https://www.googleapis.com/admin/directory/v1/groups?domain=mydomainname.com&customer=my_customer',
jwt: {
email: 'created-service-account@developer.gserviceaccount.com',
keyFile: './MyPemFile.pem',
scopes: [
'https://www.googleapis.com/auth/admin.directory.orgunit',
'https://www.googleapis.com/auth/admin.directory.device.chromeos',
'https://www.googleapis.com/auth/admin.directory.user',
'https://www.googleapis.com/auth/admin.directory.group',
'https://www.googleapis.com/auth/drive.readonly'
]}
}, function (err, res, body) {
if (err) console.log("Error", err);
console.log("BODY", JSON.parse(body));
});
我在开发者控制台中创建了一个项目。我创建了一个新的 clientId(服务帐户)。然后我看到一个 p12 文件,我使用 openSSL 将其转换为 pem 文件(在上面的 keyFile 设置中给出的文件路径)。创建的 clientId 电子邮件地址用于上面的电子邮件设置。
我已授予项目对 Admin SDK 的访问权限。然后我进入了管理控制台并在安全 -> 高级 -> 管理 API 客户端访问中,我已授予服务帐户访问上述代码中请求的所有范围的权限。
希望,这是有道理的,很难描述完整的过程。如果您有任何问题或需要澄清任何事情,请发表评论。
运行此代码时,我总是得到 403,“未授权访问此资源/api”。
我是否使用了正确的方法?由于并非所有帮助文件都与当前菜单系统匹配,因此很难遵循 Google 文档。