Пожалуйста, кто-нибудь, помогите мне:
Я нашел эти области необходимо написать в электронной таблице Google на https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/update
авторизация
Требуется одна из следующих областей OAuth:
https://www.googleapis.com/auth/drive
https://www.googleapis.com/auth/drive.file
https://www.googleapis.com/auth/spreadsheets
$client->setScopes(array( 'https://www.googleapis.com/auth/drive', 'https://www.googleapis.com/auth/drive.file', 'https://www.googleapis.com/auth/spreadsheet' ));
Я могу читать и получать данные из электронной таблицы. Но когда я пытаюсь что-то написать, он говорит: «У запроса недостаточно областей аутентификации».
Вот полная ошибка:
Fatal error: Uncaught exception 'Google_Service_Exception' with message '{ "error": { "code": 403, "message": "Request had insufficient authentication scopes.", "errors": [ { "message": "Request had insufficient authentication scopes.", "domain": "global", "reason": "forbidden" } ], "status": "PERMISSION_DENIED" } } ' in /home/muthop5/public_html/sheet/vendor/google/apiclient/src/Google/Http/REST.php:118 Stack trace: #0 /home/muthop5/public_html/sheet/vendor/google/apiclient/src/Google/Http/REST.php(94): Google_Http_REST::decodeHttpResponse(Object(GuzzleHttp\Psr7\Response), Object(GuzzleHttp\Psr7\Request), 'Google_Service_...') #1 [internal function]: Google_Http_REST::doExecute(Object(GuzzleHttp\Client), Object(GuzzleHttp\Psr7\Request), 'Google_Service_...') #2 /home/muthop5/public_html/sheet/vendor/google/apiclient/src/Google/Task/Runner.php(176): call_user_func_array(Array, Array) #3 /home/muthop5/public_html/sheet/vendor/google/apiclient/src/Google/Http/REST. in /home/muthop5/public_html/sheet/vendor/google/apiclient/src/Google/Http/REST.php on line 118
Возможно, вы захотите проверить и удалить ранее сохраненные учетные данные на ~/.credentials/drive-php-quickstart.json
на основе PHP Быстрый старт:
define('APPLICATION_NAME', 'Google Sheets API PHP Quickstart');
define('CREDENTIALS_PATH', '~/.credentials/sheets.googleapis.com-php-quickstart.json');
define('CLIENT_SECRET_PATH', __DIR__ . '/client_secret.json');
// If modifying these scopes, delete your previously saved credentials
// at ~/.credentials/sheets.googleapis.com-php-quickstart.json
define('SCOPES', implode(' ', array(
Google_Service_Sheets::SPREADSHEETS_READONLY)
));
Затем запустите приложение, чтобы получить новый набор учетных данных.
Надеюсь это поможет.
Чтобы добавить в таблицу, убедитесь, что область видимости не только для чтения, так как вы пишете в нее.
Обязательно установите запрос на утверждение, так как это также вызывает проблемы.
Google_Service_Sheets::SPREADSHEETS_READONLY)
Вместо этого используйте
$scope = array('https://www.googleapis.com/auth/spreadsheets','https://www.googleapis.com/auth/drive');
$client->addScope($scope);
$client->setIncludeGrantedScopes(true);
$client->setAccessType('offline');
$client->setApprovalPrompt('force');