Пример кода вы смотрите использует Twig, который содержит $request
и $response
значения для упрощения RESTful конечных точек.
Следующий код делает эквивалентный код без зависимостей Twig:
<?php
require_once 'google-api-php-client/src/Google_Client.php';
require_once 'google-api-php-client/src/contrib/Google_PlusService.php';
$client = new Google_Client();
// CLIENT ID/Secret from https://code.google.com/apis/console
$CLIENT_ID = 'YOUR_CLIENT_ID';
$client->setClientId($CLIENT_ID);
$client->setClientSecret('YOUR_CLIENT_SECRET');
// CUSTOM redirect URI assuming code from JavaScript callback
$client->setRedirectUri('postmessage');
$plus = new Google_PlusService($client);
// Code from the client (returned in signinCallback, or in token on Android)
$code = file_get_contents('php://input');
// Exchange the OAuth 2.0 authorization code for user credentials.
$client->authenticate($code);
$token = json_decode($client->getAccessToken());
// Verify the token
$reqUrl = 'https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=' .
$token->access_token;
$req = new Google_HttpRequest($reqUrl);
$tokenInfo = json_decode(
$client::getIo()->authenticatedRequest($req)->getResponseBody());
// If there was an error in the token info, abort.
if ($tokenInfo->error) {
print $tokenInfo->error;
}
// Make sure the token we got is for our app.
if ($tokenInfo->audience != CLIENT_ID) {
print "Token's client ID does not match app's.";
}
print 'Token from result: ' . print_r($token, true);
Спасибо за answer.It работает, но я получаю эту ошибку в консоли: 'Примечание: Не определено свойство: StdClass :: $ ошибок в C: \ WAMP \ WWW \ тест \ зарегистрировались \ plus.php на линии 35' с 'лексемы идентификатор клиента не совпадает с app's.Token из результата: StdClass Object ( [access_token] => ya29.1.AADtN_UxepFP258zs1lCee2cUa35vH6eXnf8pt251LzqtmNuO1ZtdAiLY9ewaEo [token_type] = > Носитель [expires_in] => 3594 [id_token] => длинный идентификатор здесь [created] => 1396165875 ) 'как я могу справиться с ошибкой? как «создать токен состояния подделки анти-запроса»? doc: https://developers.google.com/+/web/signin/server-side-flow – user2511140
Возьмите маркер доступа из отказавшего ответа, запустите его с конечной точкой TokenInfo: https://developers.google.com. /apis-explorer/#p/oauth2/v2/oauth2.tokeninfo и убедитесь, что идентификатор клиента , связанный с вашим проектом. Если это не так, у вас есть ошибка конфигурации где-то, найдите свои источники кода для бродячего ID. – class
Большое спасибо @Class. Как я могу «Создать токен состояния подделки анти-запроса» для php? (В этом примере) – user2511140