Facebook graph api Laravel社交名流-通过令牌获取用户详细信息
我正在用facebook登录和LaravelRESTAPI服务器开发android应用程序。用户登录手机后,应用程序获取令牌,并将其发送到我的服务器。在服务器上,我希望通过令牌获取facebook用户详细信息 Facebook SDK for PHP提供了以下方法: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
$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;使用社交名流;资料来源: