程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 使用java開發facebook網站應用程序

使用java開發facebook網站應用程序

編輯:關於JAVA

當你想用Java寫一Facebook的應用?你把在facebook的帳號中加入的程序開發模塊,下載了相關的Java類庫。忽然你發現不得不停下來:開發相關的入門介紹,樣例代碼和文檔說明在哪兒?這樣的挫敗感令人憤怒,而最終導致你不得不放棄。

 

  但願有人會盡快寫一個不錯的應用Java 開發facebook應用的入門指南。也許只需要你給我些好吃的巧克力,我們可以寫些相關的介紹文檔,老實說我們的確也解決了不少相關的問題。這裡有一些技巧幫助你使用Java開始建立自己的 facebook應用。 這並不是一個完整的入門指南,但他可以幫你在著手做時少走些彎路。

 

  八個注意事項輔助你構建Java/facebook應用

 

  1.為了你的幸福和健康,建議你使用5.0或更高的JDK開發包。

 

  2.不用看facebook java開發包中的列子,因為那些例子是針對java桌面應用程序的。而通常你是需要寫一個web應用,這兩種應用的區別還是很大的。 一開始,你需要一個web應用服務容器,你可以能會選擇tomcat,但我不會,這裡面有另一個故事,我會找個合適的時間再告訴你。Facebook的網絡應用有一個不常見的調用模式。大多數你的頁面會被facebook調用。用戶請求一個facebook的頁面,頁面中的主要內容會從你的服務器中返回給用戶。你體統的內容會融合到facebook的頁面裡返回給用戶。大多數情況下這些流程不需要你的干預就能很好的執行。但需要注意的是你服務器端產生的頁面中的Javascript是不能執行的,這就意味著普通的ajax不再在facebook中應用。如果你需要使用AJAX的技術實現facebook 提供的 mock-AJax不能完成的功能,則需要通過facebook的頁面跳到你服務配器上的一般頁面。

 

  3.配置你在facebook上的應用程序

 

  不要忘了填寫facebook應用的配置文件,你應該設置: 應用程序的回調網址。

 

  應用程序的名字- 這個名字用來表示標識在facebook的頁面。(這些頁面可以是用iframe嵌入到facebook的導航頁,也可以是用FBML標記的頁面)。一但設定,比如http://aPPS.facebook.com/yourappname/yourpagename 這個頁面就會從facebok產生一個請求到你的服務器 .對於新用戶來說,這就是一個你的應用程序的歡迎頁面,邀請用戶來使用傳播你的這個應用。

 

  4.用facebookrestclIEnt

 

  最重要的階級,在客戶端類庫中最重要的類是facebookrestclient.這個類中包含一系列調用facebook服務端的方法,並涵蓋了大部分你需要的功能。可惜facebookrestclient是不是個架構清晰的類。幾乎所有的請求,需要一個facebookrestclIEnt 這是建造一個會話密鑰 .用戶登陸後可以從CGI變量中獲得會話的密鑰。(參考 FacebookParam.SESSION_KEY.toString())沒有登陸的用戶需要引導到一個登陸頁面。 試試以下方法:

 

  // 創建一個無會話狀態的FacebookRestClIEnt

 

  FacebookRestClient client = new FacebookRestClIEnt ( 你的api密鑰 , 你的加密密鑰 ) ;

 

  String token = clIEnt.authcreateToken () ;

 

  String loginURL = “http : //www.facebook.com/login.PHP?v=1.0&apikey=&”+ YOUR APIKEY +“&auth_token =”+ token ;

 

  // 這裡轉向到登陸頁面

 

  // 登陸後就會返回會話key

 

  FacebookRestClient.auth_getSession() 以我的經驗基本沒用。他的作用是把一個無會話的clIEnt變成一個有會話的。我發現從CGI變量中獲取會話要比試用這個方法簡單。

 

  當有一個會話key的FacebookRestClIEnt,你可以調用這個類提供的各種facebook編輯方法。這些方法可以很方便與facebook進行交換操作。但不幸的事這些方法返回的是未經處理的XML文檔,這些文檔後續的處理會比較麻煩。

 

  比如 frIEnds_get()返回的是

 

  

 

  

 

  1

 

  2

 

  3

 

  

 

  

 

  你也許想封裝一些提取信息的方法,例如調用frIEnds_get(),試試這個

 

  Document d = client . frIEnds_get () ;

 

  NodeList userIDNodes = d . getElementsByTagName ( " uid " ) ;

 

  int fcount = ids . getLength () ;

 

  List < Integer > frIEnds = new ArrayList < Integer > () ;

 

  for ( int i = 0 ; i < fcount ; i ++ )

 

  { Node node = userIDNodes . item ( i ) ;

 

  String idText = node . getTextContent () ;

 

  Integer id = Integer . valueOf ( idText ) ;

 

  frIEnds . add ( id ) ; }

 

  這樣frIEnds的列表裡就填充好了用戶的id.

 

  5.servlet返回局部頁面

 

  當你生產在facebook中的頁面時,比如這樣的一個地址http://aPPS.facebook.com/yourappname/yourpagename,你必須返回的一個HTML或FBML標記的頁面片段,而不是一個完全的Html頁面。

 

  6.學習FBML .

 

  FBML這是一套特有的facebook標簽。試用標簽可以讓你很方便的完成很多功能(比如顯示用戶的名稱和圖片)。

 

  7.用戶邀請好友

 

  你想完成病毒式推廣的邀請好友?facebook最近修改了他的api(2007.11)。新版本主要改進了一個特殊的form,fb:form.

 

  原來完成這功能的方法FacebookRestClIEnt.notifications_sendRequest()已經不再使用了,如果你不慎調用將會得到一個異常。

 

  8.用戶檔案信息顯示頁面

 

  要想將一些信息放入用戶的檔案信息頁面,使用FacebookRestClIEnt.profile_setFBML()。這個方法復寫了你在應用裡設定的默認信息頁面。當你設定了用戶的個人檔案的FBML頁面,這些頁面被流量時,facebook會緩存這些頁面信息而不會即時更新。這樣就使得用戶信息的動態更新會麻煩一些。當一個事件觸發用戶信息改變時,你需要重新調用profile_setFBML()更新這些信息。幸運的時既然你已經有一個登陸的客戶端可以做任何事情,所以這個客戶端也可以任意設置你的用戶資料的數據項。

 

  好了,就這些。我還是一個facebookapi的初學者,如果你是專家,請留言斧正。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved