2015-01-14 3 views
0

Недавно я загрузил клиентскую библиотеку Google API для PHP, загрузил ее на свой сайт и использовал код, предоставленный Google для подключения к моему календарю. Первая часть работает очень хорошо. Я отправляю сообщение: https://accounts.google.com/o/oauth2/auth?response_type=code&redirect_uri=http, где я нажимаю кнопку подтверждения. Я перенаправляюсь обратно к этому файлу с помощью authcode. Но эта строка не работает:
$ accessToken = $ client-> authenticate ($ authCode);Клиентская библиотека Google API

require_once ('google-api-php-client/autoload.php'); // path to autoload.php 
if ($_GET[code] == FALSE) { 
$client = new Google_Client(); 
$client->setClientId('My client ID'); 
$client->setClientSecret('My secret'); 
$client->setRedirectUri('http://'); // path to this file. 
$client->addScope('https://www.googleapis.com/auth/calendar'); 
$client->setAccessType('offline'); 
$client->setApprovalPrompt('force'); 
$service = new Google_Service_Calendar($client); 
$authUrl = $client->createAuthUrl(); 
header("location: $authUrl"); // sends me to account.google.com I accept and get send back to this file :-) 
} 
Else { 
//$authCode = trim(fgets(STDIN)); 
$authCode = $_GET[code]; // get authcode from google 
//Exchange authorization code for access token 
$accessToken = $client->authenticate($authCode); //Fatal error: Call to a member function on a    strong text**non-object in authenticate() on line 23 
$client->setAccessToken($accessToken); 
+3

Как это провал? Выдает сообщение об ошибке? Нам нужна дополнительная информация, чтобы помочь вам. – BlargleMonster

+0

должно быть $ _GET ['code'] – Loopo

ответ

0

в $client переменная должна быть в рамках вне if отрасли, как в:

require_once ('google-api-php-client/autoload.php'); // path to autoload.php 

$client = new Google_Client(); 
$client->setClientId('My client ID'); 
$client->setClientSecret('My secret'); 
$client->setRedirectUri('http://'); // path to this file. 
$client->addScope('https://www.googleapis.com/auth/calendar'); 
$client->setAccessType('offline'); 
$client->setApprovalPrompt('force'); 
$service = new Google_Service_Calendar($client); 

if ($_GET['code'] == FALSE) { 
    $authUrl = $client->createAuthUrl(); 
    header("location: $authUrl"); // sends me to account.google.com I accept and get send back to this file :-) 
} else { 
    //$authCode = trim(fgets(STDIN)); 
    $authCode = $_GET['code']; // get authcode from google 
    //Exchange authorization code for access token 
    $accessToken = $client->authenticate($authCode); //Fatal error: Call to a member function on a    strong text**non-object in authenticate() on line 23 
    $client->setAccessToken($accessToken); 
} 
Смежные вопросы