你现在的位置:首页 > PHP网站建设知识库 > facebook api > 正文

PHP网站集成Facebook登录教程

如果想通过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参数

\