Пример простого запроса PHP API Google недостаточно прав

Я пытаюсь запустить пример простого запроса Google API PHP здесь: https://github.com/google/google-api-php-client/blob/master/examples/service-account.php
Моя цель — протестировать OAuth2 и создать межсерверное соединение между моим веб-приложением и электронной таблицей Google, которой мне поделились.

вот что у меня есть:

$client_id = 'XXX.apps.googleusercontent.com'; //Client ID
$service_account_name = '[email protected]'; //Email Address
$key_file_location = 'C:/Users/Hp/Downloads/cMessage-638a8a247351.p12';
if ($client_id == '' || !strlen($service_account_name) || !strlen($key_file_location)) {
echo missingServiceAccountDetailsWarning();
}
$client = new Google_Client();
$client->setApplicationName("cMessage");
$service = new Google_Service_Books($client);
/*       * **********************************************
If we have an access token, we can carry on.
Otherwise, we'll get one with the help of an
assertion credential. In other examples the list
of scopes was managed by the Client, but here
we have to list them manually. We also supply
the service account
* ********************************************** */
if (isset($_SESSION['service_token'])) {
$client->setAccessToken($_SESSION['service_token']);
}
$key = file_get_contents($key_file_location);
$cred = new Google_Auth_AssertionCredentials(
$service_account_name, array('https://www.googleapis.com/auth/books'), $key
);
$client->setAssertionCredentials($cred);
if ($client->getAuth()->isAccessTokenExpired()) {
$client->getAuth()->refreshTokenWithAssertion($cred);
}
$_SESSION['service_token'] = $client->getAccessToken();
/*       * **********************************************
We're just going to make the same call as in the
simple query as an example.
* ********************************************** */
$optParams = array('filter' => 'free-ebooks');
$results = $service->volumes->listVolumes('Henry David Thoreau', $optParams);
echo "<h3>Results Of Call:</h3>";
foreach ($results as $item) {
echo $item['volumeInfo']['title'], "<br /> \n";
}

Я пытаюсь запустить это, и я получаю это:

Ошибка вызова GET https://www.googleapis.com/books/v1/volumes?q=Henry+David+Thoreau&фильтр = свободные-электронные книги: (403) Недостаточное разрешение

Я дважды проверил свои учетные данные, часовой пояс и включил Google Books API в моей консоли разработчика.

Я не знаю, что еще мне не хватает. Пожалуйста помоги. Благодарю.

1

Решение

Хорошо, я получил это на работу! Вот что я сделал на случай, если кто-нибудь столкнется с этим:

В консоли разработчика Google, в разделе API & AUTH >> API, мне пришлось включить несколько API и SDK. Я не совсем уверен, что добилось цели, но вот API и SDK, которые я включил:

Admin SDK

BigQuery API

API книг

API Debuglet Controller

Drive API

Drive SDK

Google Apps Marketplace SDK

Google Cloud SQL

Google Cloud Storage

API JSON облачного хранилища Google

Google+ API

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]