【问题标题】:As a reseller, how do I create a new Google Apps user using the Admin SDK Directory API?作为经销商,我如何使用 Admin SDK Directory API 创建新的 Google Apps 用户?
【发布时间】:2025-12-26 15:50:16
【问题描述】:

当我们从已弃用的 Provisioning API 过渡到新的 Directory API 时,我发现文档中有一些关于我作为经销商如何管理我的客户(Google Apps 客户)的漏洞。具体来说,我想知道如何使用我的经销商 OAUTH 凭据,使用以下端点代表我的一位客户创建一个新用户(就像在 Provisioning API 中一样):

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

在上述文档中,我没有看到对客户帐户的引用。我认为可能有用的唯一参数是organizationsexternalIds。关于这些功能的文档很少。我正在考虑测试以下场景:

            $params = array(
            'externalIds' => array(
                array(
                    'type'          => 'customer', // or 'account'?
                    'value'         => $data['domain']
                )
            ),
            'organizations'     => array(
                array(
                    'name'          => $data['domain'],
                    'domain'        => $data['domain'],
                    'type'          => 'domain_only',
                    'primary'       => true
                )
            )
            );

同样,在对现有用户执行操作(例如检索客户)时,我看不到在哪里可以指定特定用户与哪个 Google Apps 帐户相关联:

https://developers.google.com/admin-sdk/directory/v1/reference/users/get

在这种情况下,甚至没有组织或 externalIds 的参数,所以我不知道检索如何特定于我的经销商帐户下的特定客户。

我需要能够执行这些操作,就像我仅使用我的经销商帐户 OAUTH 凭据代表我的客户在旧的 Provisioning API 中一样。

任何帮助将不胜感激。

【问题讨论】:

    标签: google-admin-sdk google-provisioning-api google-reseller-api google-directory-api


    【解决方案1】:

    假设我的经销商帐户是 reseller.com,而我的转售域是 resold.com。为了代表我的转售域创建用户,我将使用自己的转销商凭据进行调用。

    (https://developers.google.com/admin-sdk/directory/v1/guides/manage-users?hl=ja#create_user)

    POST /admin/directory/v1/users HTTP/1.1
    {
     "name": {
      "familyName": "Lam",
      "givenName": "Emily"
     },
     "password": "anythingyouwant",
     "primaryEmail": "emily@resold.com"
    }
    

    您在 primaryEmail 字段中输入的内容就是创建用户的位置。如果您现在查看转售的域管理控制台,您将看到现在创建了一个用户。

    现在再次检索,它是相同的交易。

    GET /admin/directory/v1/users/emily@resold.com
    

    您将创建这些用户并使用您的经销商凭据检索这些用户,就好像您是他们域的​​超级管理员一样。这就是问题所在......

    如果未在您转售的域管理控制台中手动选中“启用 API 访问”(默认情况下,此时会自动检查所有新转售的域),您无法代表转售的域名进行调用域。

    按钮位于管理控制台 -> 安全 -> API 参考 -> 启用 API 访问

    【讨论】:

    • 非常感谢艾米丽。与旧的 Provisioning API 相比,新的 Directory API 似乎已大大简化,只需在引用客户时使用电子邮件地址的域部分。太好了!
    • 还有一个问题……为客户域创建第一个用户时,该用户会自动提升为超级管理员帐户吗?我想知道是否有必要向/makeAdmin提出后续请求。
    • 我相信您必须拨打 makeadmin 电话。即使她是第一个创建的用户,该用户也不会自动成为超级管理员。
    • 嗨@Emily,当域被其他域经销商预订时,(1)我们如何让经销商超级管理员访问(2)makeadmin api返回错误。我应该用谁的电子邮件覆盖它来调用它?
    最近更新 更多