2014-11-13 6 views
0

Я пытаюсь внедрить логин google + oauth2 в своем приложении, и в настоящее время я сталкиваюсь с несколькими проблемами.Google+ login api проблемы

Я в основном после того, что написано here

Похоже, пример использует много библиотек, как прутик, но я использую maining чистый PHP, и я не думаю, что часть является причиной любой ошибки

Первый вопрос, который я столкнулся, состоял в том, что Google_HTTPRequest was not found. Я где-то читал, что композитор называет его Google_HTTP_Request, поэтому я изменил его и, похоже, исправил эту проблему.

Тогда php жаловался, что я делал статический вызов нестатической функции getIo(). Итак, я изменил на :: на ->, потому что это было для меня для меня.

Тогда я получаю ошибку

PHP Fatal error: Call to undefined method Google_IO_Curl::authenticatedRequest() 

Который, вероятно, имеет что-то делать с тем, что я изменился.

Код я бегаю является

$google = new Google_Client(); 
$google->setApplicationName('Hamster Weebly'); 
$google->setClientId('CLIEnTID'); 
$google->setClientSecret('himitsudesuyo'); 
$google->setRedirectUri('postmessage'); 


$google->authenticate($_POST['AUTH_CODE']); 
$token = json_decode($google->getAccessToken()); 

//$attrbutes = $google->verifyIdToken($token->id_token, '375022219321-us60lmg2cmeoj1aqpl784t7pbl1kg3jv.apps.googleusercontent.com')->getAttributes(); 

//error_log($attrbutes['payload']['sub']); 

$reqUrl = 'https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=' . $token->access_token; 
$req = new Google_Http_Request($reqUrl); 

$tokenInfo = json_decode($google->getIo()->authenticatedRequest($req)->getResponseBody()); 


if ($token->error) 
{ 
    http_response_code(500); 
    exit; 
} 

// Make sure the token we got is for the intended user. 
if ($tokenInfo->userid != $gPlusId) { 
    http_response_code(401); 
    echo json_encode("Token's user ID doesn't match given user ID"); 
    exit; 
} 
// Make sure the token we got is for our app. 
if ($tokenInfo->audience != CLIENT_ID) 
{ 
    http_response_code(401); 
    echo json_encode("Token's client ID does not match app"); 
    exit; 
} 

Что такое мой вопрос?

ответ

3

В строке:

$tokenInfo = json_decode($google->getIo()->authenticatedRequest($req)->getResponseBody()); 

getIo() должен быть изменен на getAuth() из-за (я думаю) миграции внутри API.

После этого я встретил другую ошибку, в которой я поменял:
if ($token->error) к if (isset($tokenInfo->error))

Удачи!

+0

getAuth, похоже, работает без ошибок, но tokeninfo кажется пустым. Есть ли для этого документация? спасибо –

+0

nvm это было что-то глупое с моими вардомами. Работает, спасибо! –

+0

Если этот ответ исправил вашу проблему, примите его в качестве ответа. ;-) – dragonfire