Мне нужно будет добавить данные в существующую таблицу 1000-записей подряд за строкой. Я думал, что хочу облегчить себе жизнь, сделав небольшую страницу PHP, которая покажет мне данные строки и предоставит мне форму для добавления данных, которые я хочу в эту строку. электронная таблица находится на Диске, что приведет меня к API-интерфейсу Drive! 🙂
Я загрузил клиентский менеджер Google API и начал работать с примером OAuth 2.0 (который сокращает URL-адрес). Все это отлично работало, но теперь я пытаюсь извлечь некоторые метаданные из таблицы, которая мне нужна. Независимо от того, какой тип звонка я использую в отношении диска, я всегда получаю следующую ошибку:
Неустранимая ошибка: исключить исключение «Google_Service_Exception» с сообщением «Ошибка при вызове POST https://www.googleapis.com/drive/v2/files : (403) Недостаточно разрешения»
Любая идея, что может вызвать это? Для справки, вот мой код:
<?php session_start(); set_include_path("google-api-php-client-master/src/" . PATH_SEPARATOR . get_include_path()); require_once 'Google/Client.php'; require_once 'Google/Service/Drive.php'; $client_id = 'xxx'; $client_secret = 'xxx'; $redirect_uri = 'http://localhost/coding/'; //SETTING UP THE CLIENT $client = new Google_Client(); $client->setClientId($client_id); $client->setClientSecret($client_secret); $client->setRedirectUri($redirect_uri); $client->addScope('https://www.googleapis.com/auth/drive'); $client->addScope('https://spreadsheets.google.com/feeds'); $service = new Google_Service_Drive($client); //QUICK LOGOUT MECHANISM if (isset($_REQUEST['logout'])) { unset($_SESSION['access_token']); } //HANDLE OAUTH if (isset($_GET['code'])) { $client->authenticate($_GET['code']); $_SESSION['access_token'] = $client->getAccessToken(); $redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']; header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL)); } if (isset($_SESSION['access_token']) && $_SESSION['access_token']) { $client->setAccessToken($_SESSION['access_token']); } else { $authUrl = $client->createAuthUrl(); } //TALK TO DRIVE if ($client->getAccessToken()) { //THIS GOES WRONG :) $service->files->get('xxx'); } if (isset($authUrl)): ?> <a class='login' href='<?php echo $authUrl; ?>'>Connect Me!</a> <?php else: ?> <a class='logout' href='?logout'>Logout</a> <?php endif ?>