我想创建一个通过hybridauth使用Google+ API的应用。
我正在使用hybridauth的atticmedia / anvard版本,已经配置了Google的clientID和secretKey,它们是通过Google Developer Console生成的(我已经在laravel的config文件夹中的hybridauth.php文件中插入了这些信息) 。我也设置了范围(正如谷歌建议的那样)。
"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()函数正确打印配置文件。所以我可以假设我已登录。现在我想调用Google API(例如this)。在相同的laravel路线中,在打印用户的配置文件后,我执行以下操作:
$answer= $adapter->api()->api('/people', 'get', array(
'query' => 'Google'
));
如this页面所示,我可以使用api()方法进行调用。但我可以打印的唯一结果是“NULL”。我怀疑这个请求不正确,但我几乎尝试了任何东西,而且我还没有找到一个与laravel / hybridauth结合使用的Google API的“真实”示例。
答案 0 :(得分:0)
在$adapter->api
中致电hybridauth
以访问Google API时,您必须使用完整的HTTP网址请求。
$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