У меня есть лист Google, я выполняю шаг быстрого запуска PHP (https://developers.google.com/sheets/api/quickstart/php)), чтобы кодировать скрипт PHP для чтения / записи листа Google. Я не знаю, как управлять разрешением на чтение / запись.
Вот код PHP-скрипта
$client = new Google_Client();
$client->setApplicationName('SurveyApp');
$client->setScopes(Google_Service_Sheets::SPREADSHEETS);
$client->setAuthConfig('credentials.json');
$client->setAccessType('offline');
$client->setPrompt('select_account consent');
$spreadsheetId = '<my sheet id>';
$options = array('valueInputOption' => 'RAW');
$updateRange = "FormRange!F1:F3";
$requestBody = new Google_Service_Sheets_ValueRange();
$requestBody->setValues([["Blue"],["Green"],["Red"]]);
$response = $service->spreadsheets_values->update($spreadsheetId, $updateRange, $requestBody, $options);
У меня есть 3 аккаунта Google, например GooA, GooB и GooC. Существует Google Sheet, пользователь GooA является владельцем этого листа.
Я сознательно не делюсь листом с кем-либо, имеющим права на чтение / запись. Я пытаюсь удалить token.json с сервера и перестроить его с помощью учетной записи GooB и вставить код подтверждения.
Я получаю сообщение об ошибке 500 при выполнении сценария PHP всеми пользователями, включая владельца GooA. Я разделяю лист для пользователя GooC с разрешением , который может редактировать , ошибка 500 все еще существует, пока я не предоставлю доступ к листу в GooB с разрешением для редактирования . Я прочитал журнал и обнаружил, что ошибка 500 связана с проблемой разрешения.
После того, как я поделюсь листом для пользователя, GooB, который генерирует проверочный код с , может редактировать разрешение , все пользователи, включая анонимных (без входа в систему с учетной записью Google), могут выполнить скрипт PHP без ошибок.
В сценарии PHP есть код для записи / получения значений на листе, как я могу предоставить конкретному пользователю возможность выполнить сценарий?
С уважением,
Кельвин.