Код ниже принимает расшаривает таблицы гугл методом api через php. По другому : Данная функция открывает доступ по ссылке всем желающим посмотреть эту таблицу.
$spreadsheetId_new (id таблицы) и driveService (объект гугл драйва) и публикует его, давая доступ по ссылке к документу. Замечу для таблиц нам нужны доступы к гугл диску. Что бы этот код заработал надо в define(‘SCOPES’ добавить Google_Service_Drive::DRIVE , иначе не хватит прав на запись.
Ссылка с точным описанием api и панелью для тестирования:
https://developers.google.com/drive/v3/reference/permissions/create
Код php для выставления прав доступа был описан тут:
https://developers.google.com/drive/v3/web/manage-sharing
Этот мой вариант:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
function shareTable($driveService,$spreadsheetId_new ){ $driveService->getClient()->setUseBatch(true); try { $batch = $driveService->createBatch(); $userPermission = new Google_Service_Drive_Permission(array( 'type' => 'anyone', 'role' => 'reader' )); $request = $driveService->permissions->create( $spreadsheetId_new, $userPermission, array('fields' => 'id')); $batch->add($request, 'domain'); $results = $batch->execute(); foreach ($results as $result) { if ($result instanceof Google_Service_Exception) { // Handle error printf($result); } else { //printf("Permission ID: %s\n", $result->id); } } } finally { $driveService->getClient()->setUseBatch(false); } } |