google-admin-sdk - Google Directory API - 批量添加成员到群组

标签 google-admin-sdk google-groups google-groups-api

我正在使用 Google Admin SDK 创建、更新和删除邮寄列表(也称为群组)。

到目前为止一切正常,我可以创建一个新组并向其中添加成员。但是:每次添加一个成员大约需要 1 秒,所以我在考虑一次将多个用户添加到一个组的批处理请求。

在 Google 管理界面中,一次添加多个用户很容易,但我没有找到任何通过 API 实现此操作的方法。

有没有办法做到这一点,还是我必须遍历每个用户?


这可行,但如果我必须为每个用户都这样做会花费很多时间:

    $service = new Google_Service_Directory($this->getGoogleClient());

    $user = new Google_Service_Directory_Member();
    $user->setEmail('test@test.com');
    $user->setRole('MEMBER');
    $user->setType('USER');

    $service->members->insert($group_id, $user);

最佳答案

最后我自己找到了一个解决方案:Admin SDK 带有一个 Batch 类:)

要使批处理请求正常工作,必须执行以下步骤:

启动 Google 客户端时,将以下行添加到代码中

    $client->setUseBatch(true);

然后你可以启动批处理对象

    $batch = new Google_Http_Batch($client);

对上面发布的代码稍加修改就可以得到这段代码

    foreach($arr_users as $user)
    {
            $userdata = new Google_Service_Directory_Member();
            $userdata->setEmail($user);
            $userdata->setRole('MEMBER');
            $userdata->setType('USER');
            $batch->add($service->members->insert($temp_list_name, $userdata));
    }

最后你必须执行由这一行完成的请求:

    $client->execute($batch);

就这样,它完美地工作

关于google-admin-sdk - Google Directory API - 批量添加成员到群组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29132428/

相关文章:

google-apps-script - 将所有域成员插入组

python - 谷歌 API 服务帐户。即使使用域范围委派访问也只能看到服务帐户驱动器

google-admin-sdk - 403 请求率高于配置

ruby - 如何抓取 _private_ 谷歌群组?

android - Android 5.0 Release模式下的 INSTALL_FAILED_DEXOPT 错误

gmail-api - 用于 Google Group API 媒体上传的正确电子邮件数据

google-apps-script - 引用错误 : "AdminDirectory" is not defined

javascript - 限制不同组织使用环聊

python - 获取 Google 群组成员

google-admin-sdk - 无法检索 Google 群组的成员,获取无效输入