Я пытаюсь создать токен/refreshToken, чтобы мой сайт мог отправлять данные в Google Таблицы, не спрашивая у конечного пользователя разрешения, и я борюсь с этим за Несколько часов сейчас.PHP - Google Таблицы API OAuth2- не может получить токен
Я пробовал много разных кодов, которые я нашел в Интернете + документы Google, и я сделал некоторый прогресс, но я не могу заставить его работать, и я не могу понять, что мне не хватает.
на данный момент я не получаю ошибки (ни в моих журналах), но и я не получаю редирект или новое окно для авторизации приложения
<?php
session_start();
require_once('php-google-oauth/Google_Client.php');
include_once('lib/autoload.php');
include_once('php-google-oauth/auth/Google_OAuth2.php');
$CLIENT_ID = 'xxxxxxxxxxxx.apps.googleusercontent.com';
$SECRET = 'xxxxxxxxxxxxxxxxxxxxxxxx';
$REDIRECT = 'http://mywebsite.com';
$APIKEY = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
// $KEY = file_get_contents('php-google-oauth/client_secret.json');
$client = new Google_Client();
$client->setApplicationName("Contacts to Google Sheets");
$client->setClientId($CLIENT_ID);
$client->setClientSecret($SECRET);
$client->setRedirectUri($REDIRECT);
$client->setScopes(array('https://spreadsheets.google.com/feeds'));
$client->setAccessType('offline'); // Gets us our refresh token
// Step 1: The user has not authenticated so we give them a link to login
if (!$client->getAccessToken() && !isset($_SESSION['token'])) {
$authUrl = $client->createAuthUrl();
}
// Step 2: The user accepted your access now you need to exchange it.
if (isset($_GET['code'])) {
$client->authenticate($_GET['code']);
$_SESSION['token'] = $client->getAccessToken();
header('Location: ' . filter_var($REDIRECT, FILTER_SANITIZE_URL));
}
// Step 3: We have access we can now create our service
if (isset($_SESSION['token'])) {
$client->setAccessToken($_SESSION['token']);
$token = $client->getAccessToken();
}
echo '<script>console.log("TOKEN: '. $token .'");</script>';
?>
Заранее благодарим!
Попробуйте проверить это [Github] (https://github.com/google/google-api-php-client), если это может вам помочь. Это может послужить вам руководством, если вы правильно настроили свой код. Кроме того, убедитесь, что вы прочитали эту [документацию] (https://developers.google.com/sheets/guides/authorizing) об авторизации запроса в листе API. Другое дело, что вы должны включить API-интерфейсы в своей консоли разработчика для доступа к этому API. Для получения дополнительной информации проверьте этот [поток] (https://github.com/asimlqt/php-google-spreadsheet-client/issues/20). – KENdi