Google аутентификация - PullRequest
       1

Google аутентификация

1 голос
/ 12 декабря 2011

У меня проблема с google authenticate, она работала в течение месяца, но через несколько дней я получил эту ошибку:

Fatal error: Uncaught exception 'apiAuthException' with message 
'Invalid token format' in /home/project/html/google/auth/apiOAuth2.php:127 Stack trace:
#0 /home/project/html/google/auth/apiOAuth2.php(89): apiOAuth2->setAccessToken('{? "access_tok...')
#1 /home/project/html/google/apiClient.php(132): apiOAuth2->authenticate(Array)
#2 /home/project/html/hk/connects/google.php(22): apiClient->authenticate()
#3 {main} thrown in /home/project/html/google/auth/apiOAuth2.php on line 127

В apiOAuth2.php у меня есть код:

$accessToken = json_decode($accessToken, true);
if (! isset($accessToken['access_token']) || ! isset($accessToken['expires_in']) || ! isset($accessToken['refresh_token'])) {
  throw new apiAuthException("Invalid token format");
}

Я заметил, что Google не отправляет мне $ accessToken ['refresh_token']. Похоже, это не от Google, потому что я установил правильную связь на http://stackoverflow.com

Может быть, это причина моего кода:

session_start();

$client = new apiClient();
$plus = new apiPlusService($client);

if (!isset($_GET['code'])) {
  header('Location: '.$client->createAuthUrl()); // Calls the same page
} else {
  $client->authenticate(); // Fails at this level
}

EDIT:

Я нашел способ сделать это, как будто я не знаю, что сделал refresh_token, потому что добавил эту строку:

if (!isset($accessToken['refresh_token'])) $accessToken['refresh_token'] = 12345678910;

На данный момент работает ...

1 Ответ

2 голосов
/ 12 декабря 2011

Существует новый явный параметр с именем "access_type", который требуется API аутентификации Google для получения действительного токена обновления.С помощью этого параметра вы заявляете, что вам нужен автономный доступ к учетной записи, и API предоставляет вам токен обновления.

Загрузите последнюю версию Google SDK PHP, которая автоматически обрабатывает новый обязательный параметр

...