如何使用laravel socialite实现facebook Api获取生日性别和宗教信息

时间:2016-06-15 19:12:24

标签: laravel facebook-graph-api

我刚开始使用laravel,我正在使用laravel socialite。

我可以使用以下代码获取用户名和其他数据。但是,我如何获得其他数据,如生日,性别,宗教等不在$ user变量中的数据?

我的代码

$user = Socialite::with('facebook')->user();

return "<h2> User Name ".$user->getName()."</h2><h2> ID :".$user->getId()."</h2><h2>Full Object: ".var_dump($user)"About".$user->getAbout();

我的输出:

object(Laravel\Socialite\Two\User)#170 (10) { ["token"]=> string(162) "EAADg3CcIylABAESNrt1ZBsHiLzlR7uu4e4SCjNsU8jJK6zAurEZBGW7BexQiMjiRkrIw57LYPuNrFZBiaW8MIWAh0oIOIIyFF916PH8SDCtU68r83OYBsXbJzS5x4AzIQlpxX8W7V6Mtg446CqwocGXZCHXRFv8ZD" ["refreshToken"]=> NULL ["expiresIn"]=> string(7) "5170770" ["id"]=> string(15) "624135571074425" ["nickname"]=> NULL ["name"]=> string(21) "Muhammad Abdullah Ali" ["email"]=> string(27) "abdullahbinali3@hotmail.com" ["avatar"]=> string(67) "https://graph.facebook.com/v2.6/624135571074425/picture?type=normal" ["user"]=> array(5) { ["name"]=> string(21) "Muhammad Abdullah Ali" ["email"]=> string(27) "abdullahbinali3@hotmail.com" ["gender"]=> string(4) "male" ["verified"]=> bool(true) ["id"]=> string(15) "624135571074425" } ["avatar_original"]=> string(66) "https://graph.facebook.com/v2.6/624135571074425/picture?width=1920" }

用户名Muhammad Abdullah Ali

ID:624135571074425

2 个答案:

答案 0 :(得分:7)

在社交网站重定向到facebook方法:

    public function redirectToFacebook()
    {
        return Socialite::driver('facebook')->fields([
            'first_name', 'last_name', 'email', 'gender', 'birthday'
        ])->scopes([
            'email', 'user_birthday'
        ])->redirect();
    }

获得出生日期。

然后在你自己的模特中使用它:

    public function handleFacebookCallback()
    {
        $facebook_user = Socialite::driver('facebook')->fields([
            'first_name', 'last_name', 'email', 'gender', 'birthday'
        ])->user();
    }

注意:它会要求用户在连接到Facebook时接受分享他们的出生日期。

答案 1 :(得分:0)

它对我也有用。 请注意它在socialite2.0上的laravel 5.2问题 只需下载并更新代码即可。 https://github.com/laravel/socialite/blob/2.0/src/Two/FacebookProvider.php