Я хочу создать приложение, которое использует Google+ API через HybridAuth.
Я использую atticmedia / anvard версию hybridauth, которая уже настроена с помощью clientID Google и secretKey, сгенерированных через консоль разработчика Google (я вставил эту информацию в файл hybridauth.php внутри папки config laravel). Я также установил область действия (как Google предлагает).
"scope" => "https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/userinfo.email",
Я делаю следующее в маршруте Laravel:
if (!$hybridauth->isConnectedWith('Google')) {
$adapter = $hybridauth->authenticate('Google');
}
else {
$adapter = $hybridauth->getAdapter('Google');
}
$profile = $adapter->getUserProfile();
До сих пор все идет хорошо. Профиль корректно печатается с использованием функции var_dump (). Поэтому я могу предположить, что я вошел в систему. Теперь я хочу позвонить в API Google (например, этот). На том же маршруте Laravel после печати профиля пользователя я делаю следующее:
$answer= $adapter->api()->api('/people', 'get', array(
'query' => 'Google'
));
Как показано в этот странице, я могу использовать метод api (), чтобы сделать вызов. Но единственный результат, который я могу напечатать, это «NULL». Я подозреваю, что запрос как-то не верен, но я попробовал почти все, и я пока не нашел «реального» примера Google API в сочетании с laravel / hybridauth.
При звонке $adapter->api
в hybridauth
чтобы получить доступ к API Google, вы должны использовать полный HTTP-запрос URL.
$answer= $adapter->api()->api('https://www.googleapis.com/plus/v1/people/me');
Для других сервисов, таких как Facebook, вам не нужно
$answer= $adapter->api()->api('/me');
Я использую Laravel 4.2.11 и hybridauth dev-master
Ссылка: http://hybridauth.sourceforge.net/userguide/tuts/advanced-access-google-api.html
Других решений пока нет …