通过laravel / hybridauth使用Google的API

时间:2014-11-18 09:17:49

标签: php api laravel google-api hybridauth

我想创建一个通过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的“真实”示例。

1 个答案:

答案 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