Задать вопрос
@Barbossas

Почему при создании google-таблиц доступа к ним нет?

Все работает и создается, но нет доступа к таблицам. Подскажите, в чем проблема? М.б. есть какие-то методы для доступа?

<?php

require __DIR__ . '/vendor/autoload.php';

$client = new \Google_Client();
$client->setApplicationName('Google Sheet PHP');
$client->setScopes([\Google_Service_Sheets::SPREADSHEETS]);
$client->setAccessType('offline');
$client->setAuthConfig(__DIR__ . '/credentials.json');

$service = new Google_Service_Sheets($client);

//===Таблица===
$title = 'Test';
$spreadsheet = new Google_Service_Sheets_Spreadsheet([
    'properties' => [
        'title' => $title
    ]
]);
$spreadsheet = $service->spreadsheets->create($spreadsheet, [
    'fields' => 'spreadsheetId'
]);
printf("Spreadsheet ID: %s\n", $spreadsheet->spreadsheetId);
  • Вопрос задан
  • 123 просмотра
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
@haveacess
При создании ключа (credentials.json) к нему привязывается почта. В самой гугл таблице необходимо выдать соответствующие права для этой почты (например редактирование), тогда все будет работать.
Почту, если я не ошибаюсь, можно найти так же и в этом файле.
Ответ написан
Комментировать
KB-code
@KB-code
Что бы добавить права просмотра/редактирования к созданной таблице:
//Разрешаем в нашем проекте использование Google Drive API
$client->addScope(['https://www.googleapis.com/auth/drive', 'https://www.googleapis.com/auth/spreadsheets']);
$drive = new Google_Service_Drive($client); 
$drivePermisson = new Google_Service_Drive_Permission(); 
$drivePermisson->setType('user'); 
//Email пользователя
$drivePermisson->setEmailAddress('bazhinovkirill@gmail.com'); 
//Выдаваемые ему права
$drivePermisson->setRole('writer'); 
//$spreadsheetId - id таблицы
$response = $drive->permissions->create($spreadsheetId, $drivePermisson);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы