我正在使用artdarek-oauth-4-laravel通过Facebook,Twitter和谷歌登录我的网站。
登录部分工作正常。但是我希望从这些api获得更多数据,比如用户通过谷歌注册然后我正在寻找他们的一般信息以及谷歌联系人列表,或者如果用户从Facebook注册然后我试图得到/我和/ friend-list等。
在这里,我只是以谷歌为例。
我已经设置了这样的配置
'Google' => array(
'client_id' => '***********************************',
'client_secret' => '***********************************',
'scope' => array('userinfo_email', 'userinfo_profile', 'https://www.google.com/m8/feeds/'),
),
我的控制器功能如下: -
public function loginWithGoogle()
{
$code = Input::get( 'code' );
$googleService = OAuth::consumer( 'Google' );
if ( !empty( $code ) )
{
$token = $googleService->requestAccessToken( $code );
// $result = json_decode( $googleService->request( 'https://www.googleapis.com/oauth2/v1/userinfo' ), true );
$result = json_decode( $googleService->request( 'https://www.google.com/m8/feeds/contacts/default/full' ), true );
echo json_encode($result);
}
else {
// get googleService authorization
$url = $googleService->getAuthorizationUri();
// return to google login url
return Redirect::to( (string)$url );
}
}
此代码将我引导至google api并询问我在服务范围内设置的所有权限。这里一旦我用api交换代码参数后得到访问令牌,我调用url将联系人列表返回给我但是它失败了。我从laravel获得此消息: - 无法请求资源。
如果我调用注释的$ result请求,它会返回结果。
所以,我想知道如何将此库用于除登录和注册之外的数据。如果检索Facebook好友列表,同样的事情发生但登录工作。 (我的Facebook App有权获得好友列表)。
感谢任何帮助。
答案 0 :(得分:0)
检查此回复https://stackoverflow.com/a/26488136/434790。
它对我有用。罪魁祸首:alt=json
添加到https://www.google.com/m8/feeds/contacts/default/full