Как решить проблему аутентификации в электронных таблицах Google oAuth 2.0?

Я создаю серверное приложение, которое должно проходить аутентификацию с помощью Google Spreadsheets API и считывать данные из него. Используя это PHP-клиент с Клиент API Google.

Что мне нужно сделать, это пройти аутентификацию в Google без участия пользователя.

Установил все с композитор и загружен с autoloader.php.

Проблема у меня в том, эта секция документации, $accessToken используется переменная, которую я не могу сгенерировать. Я создал проект в консоли разработчиков Google и учетные данные oAuth 2.0 с идентификатором клиента учетной записи службы. В результате я получил два файла — JSON and p12наряду с CLIENT ID, EMAIL ADDRESS а также PUBLIC KEY FINGERPRINTS учетные данные, которые я не знаю, как использовать для получения токена авторизации.

Кроме того, я сталкиваюсь с redirect_uri_mismatch ошибка, и я не могу настроить его в консоли разработчиков Google.

authenticate метод в OAuth2.php требует $code переменная, которую я не имею и не знаю, как получить.

Если бы я мог получить это $accessToken переменная, я мог бы попытаться отладить дальше.

Любая помощь высоко ценится.

0

Решение

Вот что сработало для меня:

$client = new Google_Client();
$client->setApplicationName(GOOGLE_APPLICATION_NAME);
$client->setClientId(GOOGLE_CLIENT_ID);

$key = file_get_contents(GOOGLE_KEY_FILE);
$cred = new Google_Auth_AssertionCredentials(
GOOGLE_CLIENT_EMAIL,
array(GOOGLE_SPREADSHEETS_URL),
$key
);

$client->setAssertionCredentials($cred);

if($client->getAuth()->isAccessTokenExpired()) {
$client->getAuth()->refreshTokenWithAssertion($cred);
}

$service_token = json_decode($client->getAccessToken());
$accessToken = $service_token->access_token;

use Google\Spreadsheet\DefaultServiceRequest;
use Google\Spreadsheet\ServiceRequestFactory;

$serviceRequest = new DefaultServiceRequest($accessToken);
ServiceRequestFactory::setInstance($serviceRequest);

$spreadsheetService = new Google\Spreadsheet\SpreadsheetService();
$spreadsheetFeed = $spreadsheetService->getSpreadsheets();

GOOGLE_SPREADSHEETS_URL — это https://spreadsheets.google.com/feeds GOOGLE_KEY_FILE — это местоположение вашего файла XXX.p12.

Я надеюсь, что это поможет кому-то в подобной ситуации.

0

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

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

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