Facebook graph api Laravel社交名流-通过令牌获取用户详细信息

Facebook graph api Laravel社交名流-通过令牌获取用户详细信息,facebook-graph-api,laravel,laravel-5,Facebook Graph Api,Laravel,Laravel 5,我正在用facebook登录和LaravelRESTAPI服务器开发android应用程序。用户登录手机后,应用程序获取令牌,并将其发送到我的服务器。在服务器上,我希望通过令牌获取facebook用户详细信息 Facebook SDK for PHP提供了以下方法: $session = new FacebookSession('token'); $me = (new FacebookRequest($session, 'GET', '/me',))->execute()->getG

我正在用facebook登录和LaravelRESTAPI服务器开发android应用程序。用户登录手机后,应用程序获取令牌,并将其发送到我的服务器。在服务器上,我希望通过令牌获取facebook用户详细信息

Facebook SDK for PHP提供了以下方法:

$session = new FacebookSession('token');
$me = (new FacebookRequest($session, 'GET', '/me',))->execute()->getGraphObject(GraphUser::className());
可以基于该令牌获取用户facebook的详细信息吗?或者只使用Facebook SDK?

Facebook服务提供商中实现了一种方法,但是它受
保护
,仅在内部用于获取详细信息


因此,您最好使用Facebook SDK。

我向回购提交了一个请求,该请求被2.o分支机构接受。您现在应该可以调用
Socialte::driver('facebook')->userFromToken($token)


干杯。

您还可以扩展您的社交网站Facebook提供商。

比如,
在App/Library文件夹中创建一个类作为SocialConnect

namespace App\Library;

use Laravel\Socialite\Two\FacebookProvider;

    class SocialConnect extends FacebookProvider {

        public function userFromToken($access_token)
        {
            $user = $this->mapUserToObject($this->getUserByToken($access_token));
            return $user->setToken($access_token);
        }
    }
然后在App/Providers/AppServiceProvider.php的引导方法中添加这些行

 $socialite = $this->app->make('Laravel\Socialite\Contracts\Factory');
    $socialite->extend(
        'SocialConnect',
        function ($app) use ($socialite) {
            $config = $app['config']['services.facebook'];
            return $socialite->buildProvider(SocialConnect::class, $config);
        }
    );
准备好使用了

Socialite::driver('SocialConnect')->userFromToken($accessToken)

您还可以在SocialConnection类中添加您希望的新方法。

我就是这么想的-可惜今年还没有发布包含它的版本!仅供参考,请确保您至少使用2016年3月21日发布的Socialite 2.0.15。我刚刚更新到v2.0.15,该方法似乎仍然受到保护。如果您遇到非静态方法Laravel\Socialite\Contracts\Factory::driver()之类的错误,则假设$this来自不兼容的上下文,则无法静态调用。更改此行:使用Laravel\Socialist\Contracts\Factory作为Socialist;使用社交名流;资料来源: