我正在使用 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/