2015-03-18 2 views
2

Я использую SDK Google Admin для создания, обновления и удаления списков рассылки (aka groups).API каталога Google - пакетный добавить членов в группу

Все работает нормально, и я могу создать новую группу и добавить к ней участников. Но: каждое добавление члена занимает около 1 секунды, поэтому я думал о пакетном запросе, чтобы сразу добавить нескольких пользователей в группу.

В интерфейсе администратора Google легко добавить несколько пользователей одновременно, но я не нашел способа реализовать это с помощью API.

Есть ли способ сделать это или мне нужно пройти через каждого пользователя?


Это работает, но занимает много времени, если я должен сделать это для каждого отдельного пользователя:

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

    $user = new Google_Service_Directory_Member(); 
    $user->setEmail('[email protected]'); 
    $user->setRole('MEMBER'); 
    $user->setType('USER'); 

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

ответ

2

, наконец, я нашел решение по моему: админ 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); 

это все и он отлично работает

Смежные вопросы