Итак, я следую инструкциям из https://developers.google.com/sheets/api/quickstart/php и https://developers.google.com/identity/protocols/OAuth2WebServer, чтобы запускаться на моем локальном хосте.Но я получаю эту ошибку:
Неустранимая ошибка: Uncaught Google_Service_Exception: {"error": {"code": 401,> "message": "Запрос имеет неверные учетные данные аутентификации. Ожидаемый OAuth> 2 доступатокен, файл cookie для входа в систему или другие действительные учетные данные для проверки подлинности. См.> https://developers.google.com/identity/sign-in/web/devconsole-project.",> «ошибки»: [{«message»: «Запрос имеет неверную проверку подлинности> учетные данные.», «причина»: «authError»}], »status ":" UNAUTHENTICATED "}
Вот мои файлы:
index.php
<?php
require_once __DIR__.'/vendor/autoload.php';
session_start();
$client = new Google_Client();
$client->setAuthConfig('client_secrets.json');
$client->setScopes(Google_Service_Sheets::SPREADSHEETS);
if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
$client->setAccessToken($_SESSION['access_token']);
$service = new Google_Service_Sheets($client);
$spreadsheetId = '1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms';
$range = 'Class Data!A2:E';
$response = $service->spreadsheets_values->get($spreadsheetId, $range);
$values = $response->getValues();
if (empty($values)) {
print "No data found.\n";
}
else
{
print "Name, Major:\n";
foreach ($values as $row)
{
// Print columns A and E, which correspond to indices 0 and 4.
printf("%s, %s\n", $row[0], $row[4]);
}
}
}
else
{
$redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/oauth2callback.php';
header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
}
и
oauth2callback.php
<?php
require_once __DIR__.'/vendor/autoload.php';
session_start();
$client = new Google_Client();
$client->setAuthConfigFile('client_secrets.json');
$client->setRedirectUri('http://' . $_SERVER['HTTP_HOST'] . '/oauth2callback.php');
$client->setScopes(Google_Service_Sheets::SPREADSHEETS_READONLY);
if (! isset($_GET['code'])) {
$auth_url = $client->createAuthUrl();
header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL));
} else {
$client->authenticate($_GET['code']);
$_SESSION['access_token'] = $client->getAccessToken();
$redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/';
header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
}
Спасибо!