在一般網頁使用 Facebook Connect 登入, 然後做 判斷、加入粉絲團 等動作, 設定部份請見: 使用 Facebook Connect 的設定、程式撰寫
在此篇主要是程式開發、撰寫的範例參考.
Facebook Connect 相關文件
- Facebook Developers | FB.Connect
- Facebook Connect - Facebook Developer Wiki
- XFBML 是外面用, 但東西比較少.
- FBML 是 Facebook 裡面用, 也可以在外面用, 只是比較麻煩, 要靠 FB.UI 來處理.
Facebook Connect(Login)、粉絲團判斷 的 範例程式
<?php
$appapikey = 'abc';
$appsecret = 'def';
$appid = '1000';
$facebook = new Facebook($appapikey, $appsecret);
try {
$user_id = $facebook->require_login(); // 若沒 login, 會自動導去 FB Login
} catch (Exception $e) {
$facebook->expire_session();
$user_id = $facebook->require_login();
}// 抓取 User 相關資料
$facebook = new Facebook($appapikey, $appsecret);
$user_data = $facebook->api_client->fql_query('SELECT name FROM user WHERE uid = ' . $user_id);// Facebook 判斷 User 是否為粉絲
$fql = "SELECT type, page_id FROM page_fan WHERE uid = " . $user_id . " and page_id = " . $appid;
$r = $facebook->api_client->fql_query($fql);
if (!is_array($r)) { // 不是粉絲
/* 秀 加入粉絲的頁面
<html>
<head>
<script src="http://static.ak.connect.facebook.com/connect.php/zh_TW" type="text/javascript"></script>
<script type="text/javascript">FB.init("<?php echo $appapikey; ?>");</script>
</head>
<body>
<fb:fan profile_id="<?php echo $appid; ?>" stream="0" connections="10" width="568"></fb:fan>
</body>
</html>
*/
}
?>
Facebook Connect (Login) 出現錯誤訊息
錯誤訊息
- Uncaught exception 'FacebookRestClientException' with message 'Session key invalid or no longer valid' in /dev/facebook/inc/facebookapi_php5_restlib.php:3381
解法
- 將此網域的 cookie 清空即可.
- 或 使用 $facebook->expire_session();
- 其它更多解法: Session key invalid or no longer valid
相關連結
- Facebook App 列表管理 - 常用, API Key, App 設定, Callback 設定都在此處
- Facebook App 的 API 測試工具
- 設定 Facebook app 使用 Connect 的頁面樣式 - Login 用: http://developers.facebook.com/tools.php?connect_wizard&init=1&app_id=$PAGE_ID
- User (FQL) - Facebook Developer Wiki
- 退出粉絲團連結: http://www.facebook.com/apps/application.php?id=$PAGE_ID
- Quick start on new Facebook PHP SDK (IFrame based)