网站集成Facebook登录教程
2015-09-14 11:30
776 查看
如果想通过Facebook登录到第三方的网站,利用Facebook站外API可以实现,下面是实现步骤。
首先你必须有一个Facebook账号,进入我的应用,建立一个Facebook应用。
地址:http://www.facebook.com/developers/apps.php,步骤如下:
输入应用名称
验证输入
输入一些信息
输入你的应用站点URL(这个不能缺少,否则没法进行测试)。
应用建立成功,获得App ID, API Key, App Secret。
进入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。
建立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。
相关文章推荐
- Android Manifest 用法
- Spark RDD API详解(一) Map和Reduce
- Facebook's New Real-time Messaging System: HBase to Store 135+ Billion Messages a Month
- Facebook获得TechCrunch Crunchies 2009最佳奖
- 一个小型js框架myJSFrame附API使用帮助
- 详细分析交换机、路由器、集线器的区别和联系
- 批处理的api WMIC学习体会有感第1/2页
- 批处理 API实现文件下载的代码第1/2页
- Lua教程(十七):C API简介
- 强制删除工具 xdelbox xdelbox1.5正式版下载
- 揪出交换机端口背后“凶手”导致网速太慢
- 电脑重启后突然检测不到硬盘的原因分析与解决办法
- C#中设计、使用Fluent API
- Google官方支持的NodeJS访问API,提供后台登录授权
- PQ分区出错! 巧用Ghost急速补救的绝妙办法
- 深入C++中API的问题详解
- 使用WindowsAPI实现播放PCM音频的方法
- 40余种刻录盘片详细对照分析介绍第1/2页
- fullCalendar中文API官方文档
- 详解ASP.NET WEB API 之属性路由