在國外的網站上,可以看到有很多的網站均有facebook登錄,那麼該如何實現用facebook進行登錄呢?上前面的博客中我們知道了js中如何獲取用戶的信息,可是,在php文件中如何獲取呢?
第一步,必須建立自己的應用程序.
登錄www.facebook.com註冊一個facebook帳號,其次,登錄www.facebook.com/developer.將自己註冊爲facebook開發者,創建一個應用程序,
會出現如上顯示框,其中Name表示,你網站的名稱,website with facebook login 表示訪問完facebook之後的跳轉轉頁面,其中,sandbox mode一定有要設爲禁用,否則無法獲得其中的用戶的信息,點擊保存會出現:,其中,appid是你網站的id,以後要用的,與app secret一樣.
第二步.下載sdk語言包,下載地址:https://github.com/facebook/php-sdk,在國內可能會訪問不了,可以掛代理,
第三步,在試圖文件上添加按鈕,按鈕有幾種
(1)facebook自帶的按鈕,代碼爲<fb:login-button show-faces="true" width="200" max-rows="1" scope="email"></fb:login-button>這代碼可以自動添加按鈕,按鈕的形式是
(2)自己添加一個鏈接形如<a href="<?php echo $facebook->getLoginUrl(array('scope' => 'email,publish_stream'));?>"><img src="includes/templates/bleubirtheme/images/facebook11.png"/></a>,其中的array('scope' => 'email,publish_stream')表示網站可以獲取用戶email的權限,其中的$facebook->getLoginUrl(array('scope' => 'email,publish_stream')的返回值是是個鏈接,
第四步,添加運行代碼
在同一個頁面上添加下面這段代碼:
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : <?php echo $facebook->getAppId(); ?>,
status : true,
//cookie : true,
xfbml : true,
oauth : true
});
};
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
</script>
在website with facebook login 表示訪問完facebook之後的跳轉的頁面中添加下面這段代碼,
require_once 'facebook.php';//facebook.php是剛剛從官網上下在文件,在src文件夾下.
$facebook = new Facebook(array(
'appId' => 剛剛註冊的網站的appid
'secret' =>剛剛註冊的網站的appsecret
));
$user=$facebook->getUser();
$user_profile = $facebook->api("/me");//獲取用戶的信息
print_r($user_profile);
這樣就可以得到用戶的信息了.