先來實做一個簡單的範例, 一個極為簡單的Facebook App, 其唯一的功能只有列出User所有朋友的頭圖, 當然前提是User已經完成對App的授權(Allow)之後.
- Step1 建立一個新的應用程式
輸入應用程式的名稱, 並且要將"Agree"點選起來
點選"Create Application"之後, 你會被導向如下圖所示的頁面
本頁面有三個非常重要的資訊, 其中API Key與Secret都是要用在API中的重要資訊
接下來點選"Canvas"頁籤, 在這裡有三個設定非常重要
- Canvas Page URL
這裡設定的就是以後User連結到你的App的URL, 以本範例而言, 我們在輸入框中填入sixyeah_demo_a, 一但送出之後, 以後User只要輸入http://apps.facebook.com/sixyeah_demo_a就會連結到你App的Canvas Page了.
- Canvas Callback URL
這裡所設定的URL就是指向放置該App的應用程式主機, 以本範例來說, App是Hosting在www.6yeah.com 這台主機上面, 設定值為"http://www.6yeah.com/fb_apps/friends_list/my_friends_list.php"
- Render Method
我們選用FBML
如此一來我們已經完成了一個App所有必要的設定了
- Canvas Page URL
- 下載PHP Client Libraries
- PHP與FBML程式碼
<?php
require_once('./facebook-platform/php/facebook.php');
require_once('./facebook-platform/php/facebookapi_php5_restlib.php');$appapikey = '{API Ley}';
$appsecret = '{APP Secret}';
$facebook = new Facebook($appapikey, $appsecret);
$user = $facebook->require_login();$friend_uids = explode(',',$_POST['fb_sig_friends']);
?>
<div style="border:solid 2px gray;padding:5px;float:left;clear:both;"><?php
foreach ( $friend_uids as $uid ){
?>
<div style="float:left;margin:5px;">
<fb:profile-pic uid="<?php echo $uid; ?>" linked="true" size="square"/>
</div>
<?php
}
?>
</div>結果會如下圖所示 進入Demo頁面
站主你好,看你的Blog受益良多,我現在用 IFRAME 加了個 add to profile 到網頁
ReplyDelete語法是
FB.Integration.showAddSectionButton("profile", document.getElementById("div id"));
這樣子它制式的add to profile 會出現在這個 div 中
然後點那個按鈕就會出現加入個人檔案的訊息(加入的資料在前面用php變數代入)
我現在有幾個問題想請教一下
1.有辦法改這個 add to profile 的圖嗎
2.用FBML方式呼叫add to profile 很簡單,出現也是中文,但用IFRAME我這種方式呼叫出現只有英文,可以改語系變成「加入個人檔案」嗎
****(第三個問題我比較想知道)***
3.有辦法知道這個人是否已經加入到個人檔案了嗎 ... 因為在版面上,Facebook會自動判斷是否有加入,未加入才會顯示出那個按鈕,那我在版面設定想要寫說若已加入個人檔案,秀張圖說你已加入這樣。
因為知道Facebook能判斷是否已加入,所以想知道這個判斷該怎麼接到~
不好意思問了這麼多問題,若你有空的話請提示一點,或請給個方法讓小弟去找,感謝啦 !
猴爺,
ReplyDelete你好.
請問如何只利用 API 取得使用者的profile pic?
是否需先取得使用者的授權才可取得profile pic?
謝謝..^_^..
MC
(mrcheunghk@gmail.com)