使用NodeJ访问Google Directory API

时间:2014-11-23 18:15:31

标签: node.js google-api jwt google-groups google-directory-api

我无法使用节点访问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));
});

我在Developer Console中创建了一个项目。我创建了一个新的clientId(服务帐户)。然后我会看到一个p12文件,我使用openSSL转换为pem文件(上面的keyFile设置中给出的文件路径)。创建的clientId电子邮件地址用于上面的电子邮件设置。

我已授予项目访问Admin SDK的权限。然后我进入管理控制台和安全 - >高级 - >管理API客户端访问权限,我已授予服务帐户访问上述代码中请求的所有范围的权限。

希望,这是有道理的,很难描述整个过程。如果您有任何问题或需要明确任何问题,请发表评论。

运行此代码时,我总是得到403,"未授权访问此资源/ api"。

我使用的是正确的方法吗?由于并非所有帮助文件都与当前菜单系统匹配,因此很难按照Google文档进行操作。

0 个答案:

没有答案