網路上已經有許多關於 Facebook API 的使用教學,而最近則是越來越多關於 Facebook Connect 的應用,例如替自己的 Blog 加入留言,但留言可以發佈到 Facebook 塗鴉牆上,在這邊試著結合 Facebok API 與 Facebook Connect ,建立一個網站服務,但網站管理者不管理帳號密碼,反而全部都使用 Facebook 的帳密管理機制。
這樣的最大的好處是網站服務的推廣時,主要透過 Facebook 的平台,提供類似 OpenID 或 OAuth 的服務,讓使用者不必再註冊一個新帳號,並且使用 Facebook 的平台推廣自己開發的服務。
先看看 Facebook 上頭使用者的活躍程度:
More than 400 million active users
50% of our active users log on to Facebook in any given day
More than 35 million users update their status each day
More than 60 million status updates posted each day
... 除此之外,Facebook 也提供許多官方與非官方 Client libraries ,如:
所以,有機會就試試 Facebook Connect 的效果吧!
設定方式:
辦完向 Facebook 申請的設定部份後,緊接著則是對 Server 撰寫合適的程式碼,在此以簡單的程式碼舉例:
- 假設網站位置在 http://my.domain.com/path/fb/ ,在 Server 位置恰好是 /data/path/fb/ 目錄,那該目錄會有兩個檔案,分別是 config.php 跟 index.php ,如果無法設定網站根目錄 xd_receiver.htm ,那可以把它擺在 /data/path/fb/ 目錄中,也就是在 /data/path/fb 目錄中共有三個檔案。
- config.php
- <?php
- session_start();
- $appapikey = 'API_KEY';
- $appsecret = 'Application Secret';
- // check login
- if( isset( $_REQUEST['check_login'] ) )
- {
- require_once 'facebook.php';
- $facebook = new Facebook($appapikey, $appsecret);
- $user_id = $facebook->get_loggedin_user();
- if( !empty( $user_id ) && !isset( $_SESSION['id'] ) )
- {
- $_SESSION['type'] = 'facebook' ;
- $_SESSION['id'] = $user_id;
- if( isset( $_REQUEST['continue'] ) )
- {
- header( 'LOCATION: '.$_REQUEST['continue'] );
- exit;
- }
- }
- }
- $curr_url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
- ?>
複製代碼
- index.php
- <?php
- require_once( 'config.php' );
- ?>
- <html>
- <head>
- </head>
- <body>
- <script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php/zh_TW" type="text/javascript"></script><script type="text/javascript">FB.init("<?php echo $appapikey;?>");</script>
- <?php
- if( !isset( $_SESSION['id'] ) )
- {
- $login_url = strpos( $curr_url , '?' ) > -1 ? $curr_url.'&check_login=on' : $curr_url.'?check_login=on';
- ?>
- <fb:login-button v="2" size="small" onlogin="window.location='<?php echo $login_url; ?>';">用 Facebook 登入</fb:login-button>
- <?php
- }
- else
- {
- ?>
- <fb:comments numposts="4" title="My Blog Comments" css="http://www.yourwebsite.com/css/comments.css?1234" simple="1"></fb:comments>
- <?php
- }
- ?>
- </body>
- </html>
複製代碼
網站 Demo 畫面:
目前的缺點:
尚未找到妥善的登出方式。 |