您的位置:首页 > 运维架构 > 网站架构

网站集成Facebook登录教程

2015-09-14 11:30 776 查看
如果想通过Facebook登录到第三方的网站,利用Facebook站外API可以实现,下面是实现步骤。


建立Facebook应用。

首先你必须有一个Facebook账号,进入我的应用,建立一个Facebook应用。
地址:http://www.facebook.com/developers/apps.php,步骤如下:




输入应用名称



验证输入




输入一些信息




输入你的应用站点URL(这个不能缺少,否则没法进行测试)。




应用建立成功,获得App ID, API Key, App Secret。





下载开发SDK包。

进入http://developers.facebook.com/docs/sdks/,下载SDK包。

不同开发语言选择对应的SDK包,我们下载PHP SDK包。






修改配置文件。

打开下载包,进入examples/example.php,修改配置:

$facebook = new Facebook(array(

‘appId’  => ”,//你的App ID

‘secret’ => ”,//你的App Secret

‘cookie’ => true,

));

蓝色部分对应修改成刚才获取的App ID,App Secret。

 

另外,如果你的服务器无法验证Facebook的SSL验证,请在src/facebook.php文件makeRequest方法curl_init()之后添加:

$opts[CURLOPT_SSL_VERIFYPEER] = false;

$opts[CURLOPT_SSL_VERIFYHOST] = 2;

 


测试实例。

访问服务器下example.php,如下图:





出现两种不同的登录方式,随便点击一个,会出现下图:





允许后,进入下图:





这样就实现了通过Facebook登录到自己的服务器上。

 


部分授权。

登录成功后,我们打印用户信息得到:





你会发现没有显示邮箱地址email,原因是没有权限,这里获取的值很多需要得到用户的授权才可以获得的,不同的值需要的授权不同,如下图:









下面是授权地址:

格式如下:
https://graph.facebook.com/oauth/authorize?clientid=yourappid&redirect_uri=yoururladdress&scope= permission

比如:

https://graph.facebook.com/oauth/authorize?client_id=161127207277254&redirect_uri=http://www.test.com&scope=email

输入授权地址,进入下图:





允许以后,再打印$me就会有email了,如下图:



6.API调用分析

下面是登录的代码:

//判断用户是否已经登录

$session = $facebook->getSession();

$me = null;

if ($session) {

try {

//获取用户UID

$uid = $facebook->getUser();

//获取用户资料

$me = $facebook->api(‘/me’);

} catch (FacebookApiException $e) {

error_log($e);

}

}

if ($me) {

//获取退出链接地址

$logoutUrl = $facebook->getLogoutUrl();

} else {

//获取登录链接地址

$loginUrl = $facebook->getLoginUrl();

}

 

API列表及参数见: http://developers.facebook.com/docs/reference/api/ 页面, 可以通过传入不同的参数来调用API。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  api facebook