Использование API Google через laravel/hybridauth
Я хочу создать приложение, которое использует 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 (например, это). По тому же маршруту, после печати профиля пользователя я делаю следующее:
$answer= $adapter->api()->api('/people', 'get', array(
'query' => 'Google'
));
Как показано на этой странице, я могу использовать метод api() для выполнения вызова. Но единственный результат, который я могу напечатать, это "NULL". Я подозреваю, что запрос каким-то образом не верен, но я попробовал почти все, и я пока не нашел "реального" примера API Google в сочетании с laravel/hybridauth.
1 ответ
При звонке $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