官方 Java 庫缺乏 Web 應用入門指南,範例多為桌面應用。本文彙總實戰踩坑經驗,助你少走彎路。
https://apps.facebook.com/yourapp/),新用戶落地頁即為傳播入口。// 無會話客戶端
FacebookRestClient client = new FacebookRestClient(API_KEY, SECRET);
String token = client.auth_createToken();
String loginUrl = "https://www.facebook.com/login.php?v=1.0&api_key=" + API_KEY + "&auth_token=" + token;
// 重導向至 loginUrl,用戶授權後回調帶 session_key
避免使用 auth_getSession(),直接從 CGI 參數 fb_sig_session_key 獲取會話鑰匙更可靠。
Document d = client.friends_get();
NodeList ids = d.getElementsByTagName("uid");
List<Integer> friends = new ArrayList<>();
for (int i=0; i<ids.getLength(); i++) {
friends.add(Integer.valueOf(ids.item(i).getTextContent()));
}
<fb:name>、<fb:profile-pic> 等標籤極大簡化用戶資訊顯示。<fb:request-form> 替代廢棄的 notifications_sendRequest(),詳見官方 Wiki。profile_setFBML() 覆寫默認內容,Facebook 緩存 Profile 箱,數據變更時需主動再次調用更新。Facebook Java 開發核心在於理解 Canvas 回調模型、善用 FBML、正確處理會話與 XML。期待社群產出更完整指南,共築 Web 2.0 生態。