【问题标题】:In Google Directory API, how do I add a user using javascript?在 Google Directory API 中,如何使用 javascript 添加用户?
【发布时间】:2017-11-24 22:09:31
【问题描述】:

我有 Google Directory API Javascript quickstart 工作。这部分代码列出了目录中的前 10 个用户:

      gapi.client.directory.users.list({
        'customer': 'my_customer',
        'maxResults': 10,
        'orderBy': 'email'
      }).then(function(response) {
        var users = response.result.users;
        appendPre('Users:');

        appendPre('test')

        if (users && users.length > 0) {
          for (i = 0; i < users.length; i++) {
            var user = users[i];
            appendPre('-' + user.primaryEmail + ' (' + user.name.fullName + ')');
          }
        } else {
          appendPre('No users found.');
        }
      });

我想在目录中添加一个用户。看起来这是使用users: insert 完成的。因此,从范围中删除“只读”部分后,我将上面的代码 sn-p 替换为:

var user = {
        "password": "Testpass123",
        "primaryEmail": "albert.smith@mydomain.com",
        "name": {
          "givenName": "albert",
          "familyName": "smith"
        }
      };
      
gapi.client.directory.users.insert(user);

显然这不起作用,但我不确定我错过了什么。 users:insert 参考页面上有一个“Try this API”工具,当我在“请求正文”字段中插入“用户”的属性时,它会添加用户。

虽然我不确定如何制作请求正文,但我在文档中找不到解决方案。 users:list 方法不需要请求正文。我尝试了类似的方法,但也没有用:

gapi.client.request({
         'path': 'https://www.googleapis.com/admin/directory/v1/users',
         'method': 'POST',
         'body': user
       });

希望有人可以至少让我大致了解该怎么做。我对此很陌生。

【问题讨论】:

    标签: javascript http-post google-admin-sdk google-directory-api


    【解决方案1】:

    试试这个源自Apps Script's Admin SDK Add user 的虚拟数据并替换为您的正确详细信息:

    示例请求正文:

    var user = {
        primaryEmail: 'liz@example.com',
        name: {
          givenName: 'Elizabeth',
          familyName: 'Smith'
        },
        // Generate a random password string.
        password: Math.random().toString(36)
      };
    

    【讨论】:

    • 这看起来与我的请求正文足够相似,我相信两者都可以。我的问题是我不知道如何处理这个“用户”变量。我试过gapi.client.directory.users.insert(user);,但没有奏效。换句话说:如何将请求正文插入到 user.insert 函数中?
    【解决方案2】:

    尝试将用户对象包装在资源对象中,例如:

    var user = {
      resource: {
       "password": "Testpass123",
       "primaryEmail": "albert.smith@mydomain.com",
       "name": {
          "givenName": "albert",
          "familyName": "smith"
        }
      }
    }
    

    我再也找不到这方面的参考资料了,所以也许其他人可以发帖,但它对我有用。

    【讨论】:

      【解决方案3】:

      基于https://developers.google.com/admin-sdk/directory/reference/rest/v1/users/insert

      function execute() {
                  return gapi.client.directory.users.insert({
                      "resource": {
                      "name": {
                      "familyName": "Joey",
                      "givenName": "Shmoger"
                      },
                      "password": "ShmoeyJoey!",
                      "primaryEmail": "shmogerjoe@grower.com"
                  }
                  })
              .then(function(response) {
                      // Handle the results here (response.result has the parsed body).
                      console.log("Response", response);
                    },
                    function(err) { console.error("Execute error", err); });
              }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-28
        • 2023-03-14
        • 2015-08-10
        • 1970-01-01
        • 2018-12-18
        • 2015-04-10
        相关资源
        最近更新 更多