2011年9月1日 星期四

Facebook API PHP SDK試用心得

最近在研究Facebook API,但發現中文的教學似乎不多,而且也有點過時,教程中用的方法和現在的PHP API已經有相當大的差異了,目前能依靠的主要還是官網的說明文件,但也只有英文的,而且由於FB做了很多種API,而且我覺得人心木說明文件整理的不是很好,要東一角西一塊的找,不是很容易上手,所以就將自已上手的過程寫出來供有需要用的人參考。

要使用Facebook API PHP SDK,可依照下列步驟進行:

1.須先向Facebook申請一個App,詳細說明可參照「申請Facebook應用程式的步驟說明」。

2.申請完成後,PHP SDK必須在指定網址才能夠執行,請務必放在您所輸入之網址下,而App ID和App Secret則要記下來,在使用PHP SDK時需要用到。



3.從「文件」->「SDKs & Tools」->「PHP SDK」到下載頁,按下Download按鈕。


4.下載完後解壓縮,放到你所指定的網址下的任一個目錄

5.在你想寫的程式中加入下列程式碼,
請將你的App ID和App Secret取代程式中的YOUR_APP_ID和YOUR_APP_SECRET。


    require 'php-sdk/src/facebook.php';


    $facebook = new Facebook(array(
      'appId'  => 'YOUR_APP_ID',
      'secret' => 'YOUR_APP_SECRET',
    ));


    // Get User ID 
    $user = $facebook->getUser(); //$user為所登入用戶之ID




6.可用下列程式碼確認用戶是否已登入,並用$loginUrl或$logoutUrl來引導用戶登入或登出:


    if ($user) {
      $logoutUrl = $facebook->getLogoutUrl();
    } else {
      $loginUrl = $facebook->getLoginUrl();
    }


7.$facebook->api()方法,是呼叫Facebook API的接口:


    if ($user) {
      try {
        // Proceed knowing you have a logged in user who's authenticated.
        $user_profile = $facebook->api('/me');  //取得用戶在Facebook的基本資料
      } catch (FacebookApiException $e) {
        error_log($e);
        $user = null;
      }
    }   



8.也可執行examples目錄下的example.php,只要正確登入Facebook,再稍微修改一下$facebook->api()中的指令,就能知道怎麼用了。

9.關於Facebook API的指令,可參考Graph API 說明文件

10.目前試過:
'me' 可取得所登入用戶之基本資料。
'me/friends' 可列出登入用戶之所有朋友之姓名及id。
'me/likes' 可列出登入用戶之所有like的專頁。
可用https://graph.facebook.com/<?=$id?>/picture來取得指定$id之照片。
其他還有很多功能,目前還沒試出來。


上述的me也可以替換成指定用戶之id,但有些功能如果不是該帳戶本人或朋友則無法使用。

基本上應用程式是可以很容易收集很多Facebook用戶的基本資料,因為只要有一個用戶同意使用該App,則表示他的所有朋友的基本資料都可能被該應用程式所取得,雖然都是一些如姓名,性別,所在地區,id等等...非常「基本」個人資料,但如果收集到了足夠數量的資料之後,是可以很輕易的依據該應用程式的功能及用戶的使用狀況來做各種數據分析的。


申請Facebook應用程式的步驟說明

由於要開發各種Facebook Application都要先申請,所以將這些共同的步驟單獨整理成一篇。


要申請Facebook應用程式,可依照下列步驟進行:

1.需先進入Facebook開發者網站


2.選擇上方選單的「應用程式」連結


3.同意「開發人員」程式之授權請求,如果之前有同意過就不會再出現了。


5.輸入App Name,選擇地區,按確定

6.輸入驗證碼後,按碼認

7.完成,整個流程最主要的目的就是要為你的App產生一組App ID和App Secret,在套用SDK時往往需要將App ID及App Secret加到程式中才能夠合法使用Facebook API,至於其他設定,則視要開發什麼App才能決定了。


後續要開發什麼App,可參考: