傑瑞Facebook API @ 傑瑞的臉書 - 隨意窩

文章推薦指數: 80 %
投票人數:10人

一、Facebook API 基礎概念Facebook API 概論: API 最大的好處在於可以讓程式開發人員只需要根據API 定義的方式呼叫相對應的功能,無須瞭解該功能底層的原始碼為何或 ... 傑瑞的臉書藉由寫專案,把各個功能記錄起來....來防止爾後的老化日誌相簿影音好友名片 201202091531傑瑞FacebookAPI?未分類一、FacebookAPI基礎概念 FacebookAPI概論: API最大的好處在於可以讓程式開發人員只需要根據API定義的方式呼叫相對應的功能,無須瞭解該功能底層的原始碼為何或理解其內部運作機制的細節。

FacebookAPI正是Facebook所推出的應用程式介面,我們可以透過這個應用程式介面存取Facebook中使用者、群組、個人檔案、相片等資料。

使用FacebookAPI,須先下載API函式庫,並安裝到Facebook應用程式所在的伺服器。

目前Facebook共有六種官方支援的 函式庫 ,分別是PHP5、JavaScript、FacebookiPhoneSDK、ActionScript3.0、MicrosoftSDK與Force.com。

Facebook提供的技術資源: Facebook的應用程式又分為FBML和iframe兩種,FBML(FacebookMarkupLanguage)是Facebook提供的網頁標記語言,與HTML類似,為了隱私權、安全性以及一些其他的考慮因素,Facebook並不允許用戶使用所有的HTML標籤。

FBML的運作模式是,用戶在自己的伺服器上用FBML開發網站,然後在Facebookapplication中設定網站路徑(canvaspage),Facebook將用戶的Request處理後傳到開發者的WebServer,接收到開發者的FBML頁面以後再轉換成用戶瀏覽器使用的HTML。

在FBML模式運作中,用戶完全不會與開發者的伺服器接觸,而是透過Facebook作為橋樑,保證了用戶端和開發者端的私密性,也避免開發者的伺服器承受過多流量。

這種模式的優點是可以跟Facebook作最緊密的結合,其style不用費心,只要使用FBML的Tag,應用程式看起來就像是Facebook的一部分。

而且可以直接取用許多Facebook已經開發好的Tag。

但是缺點在於與Facebook耦合度高,只適合作為新專案開發,如果是現有的網站想要套入Facebook裡面,就需要經過大幅修改。

iframe是XHTML中的一個頁籤,可以嵌入其他網站的內容到網頁上。

簡單來說,就是Facebook僅提供外框,讓開發者嵌入自己的網站到Facebook裡面。

這時候,開發者無法直接使用FBML,而要使用XFBML。

XFBML跟FBML一部分的Tag是相同的,不過有些FBML的Tag並不能用在iframe當中,而且使用起來有些不同。

此外,用戶可以使用大多數的XHTML標籤,所以適合用在現有的專案上。

不過XFBML與Facebook的耦合度較低,而且用戶必須自行設計網頁的Style。

不過,Facebook有提供本身使用的CSS,開發者可以參酌使用。

使用iframe的話用戶的圖片等等多媒體檔案都無法被Facebook快取,用戶的伺服器會直接面對用戶的Request,其安全性較低,開發者本身伺服器所負擔的Loading也比較高。

好處是降低與Facebook的耦合度,許多Facebook的Flash小遊戲即採用這種方式,這樣做可以使一個應用程式可以在Facebook以外的平台上運作,而不必花上大量時間修改。

FBJS是Facebook提供的JavaScript函式庫,可以讓開發者很容易產生許多Facebook的動作,例如對話框。

也可以用來產生與操作FBML的Tag,整合Ajax技術等等。

Facebook提供REST風格的API,就是任何程式語言都能夠利用HTTP協定來存取Facebook所提供的服務。

而Facebook也很親切地為各位準備好了許多程式語言的ClientLibrary,PHP、Javascript、IPhone和Flash/ActionScript的Library是由Facebook官方提供,而C#、Java、C++…等等多種不同語言的Library都有第三方的開發支援,甚至像是LISP這樣的人工智慧語言都有。

開發者幾乎可以使用API操作Facebook的所有資訊,像是朋友名單、塗鴉牆、活動名單,邀請朋友等等。

FQL(FacebookQueryLanguage),使用SQL風格的Facebook資料查詢語言,可以透過API中的fql.query和fql.multiqueryfunction查詢虛擬資料表中的資料,這些虛擬資料表包括album、user、status、profile…等等許多不同種類的資料。

其中絕大多數都可以透過API介面來取得,但是你也可以使用FQL來做更直接的查詢。

FQL操作這些虛擬資料表的方式就跟SQL差不多,但是FQL還是有實作一些特別的功能讓開發者存取這些資料的時候更為方便簡單。

FQL只支援SELECT敘述,是不能做Update、Delete和Insert操作的。

二、FacebookAPI 權限API(PermissionAPI) 管理應用程式的開發者設定 擷取應用程式的各項評估資訊 阻擋特定的使用者 取得應用程式的公開資訊 授權API(AuthorizationAPI)議程(Session)與登入資訊的管理 批次API(BatchingAPI)稍微瞭解FacebookApp運作方式的人都知道,應用程式存放的地方不是在Facebook的Server群之中,而是在開發者自己的遠端Hosting上面,所以App與FacebookAPI之間的溝通就會透過遠端APICall來進行,當然這也就造成了App運作效能最大瓶頸之所在。

所以Facebook提供了批次API讓開發者可以一次最多將20個FacebookAPICall打包成一次的HTTPRequest,並可設定是要用循序的或是並列式的去發出。

評論API(CommentsAPI)開發者可以透過此API對FeedStories的評論進行程式化的取得、建立、刪除。

資料存放API(DataStoreAPI)簡言之,開發者可以透過這個API將資料存放在Facebook的伺服器中(建立資料表格、物件以及其間的關聯)。

事件API(EventAPI)允許應用程式以使用者的身分去建立擁有RSVP(ReSourcereserVationProtocol,資源預留協議)功能的事件、管理事件專屬的媒體、事件輸出功能。

FBMLAPI建立客制的FBML標籤、更新被快取的圖片、上載地區化的文字、更新ProfileBox的FBML。

訂閱API(FeedAPI)程式化的建立新聞樣板、程式化的新聞發布。

FQLAPI應用程式可以透過SQL-Like的語法去Facebook擷取想要的資料,許多FacebookAPI內部也大量的使用FQL,所以直接使用FQL擷取資料可以更有彈性與效率。

透過FQLAPI開發者可以發出單一FQL查詢或是循序的相依FQL查詢,遺憾的是preloadFQL無法透過此API進行。

連結API(LinksAPI)發布連結到使用者的塗鴉牆之中,功能就如同Facebook網站上無所不在的Share功能鍵。

用戶管理API(UserManagementAPI) 這組API應該就是Facebook最重要的API了,主要功能是用來管理Facebook最重要的使用者社群圖像,包含取得特定使用者的個人資訊、朋友清單、檢查使用者是否授權某些應用程式等等。

網誌API(NotesAPI)允許應用程式去發布、編輯、刪除Facebook上的Notes,Notes就是使用者位於Facebook上的Blog。

消息API(MessagingAPI) 發送Facebook通知(Notification)以及email 更新使用者在Facebook上的狀態 發送LiveMessages 頁面API(PagesAPI)Pages以前就是大家所熟悉的粉絲專區,但是近期Facebook將其重新定位後,Page運作起來就像是一般的使用者Profile,透過PagesAPI,可以知道目前登入的使用者是否是該Page的管理者,也可以知道該Page加入了哪些應用程式,附帶一提的是,Page的粉絲就如同一般使用者Profile的朋友一般。

影像API(PhotoandVideoAPI)應用程式透過此API可以建立相簿、上傳相片與影音、取得標籤資訊。

配置API(ProfileAPI)應用程式頁籤(ApplicationTabs)、使用者的應用程式資訊區塊(ApplicationProfileBoxes)、信息區(InfoSections)。

開放標準API(OpenStreamAPI) 自Wall中讀取出並發布內容 管理評論並對個別的FeedStories下評價 三、API類別 Ⅰ. CoreAPIs   Ⅱ. AdvancedAPIs    Ⅲ. SDKs 【GraphAPI】⇑ GraphAPI能讓您在Facebook社交平台上記錄活動以及連結。

GraphAPIReference提供所有活動以及連結的API。

有關API的介紹及概念,請參考 GraphAPIoverview,使用的Objects為下列所示: Album相簿 Event指定活動訊息,包含位置、活動名稱和參加邀請活動 Group社群 Link分享連結在塗鴉牆上 Note網誌 Page頁面,步驟參考: FacebookPage Photo相片 Post動態消息 Statusmessage狀態資料 User個人檔案 Video影片 【Socialplugins】⇑ Socialplugins能找出您的朋友喜歡什麼、分享什麼,回應些什麼,是Facebook的擴充元件,提供您與您在Facebook網站上同樣等級的隱私控制,完全由您決定要跟誰分享哪些內容。

有關Socialplugins的詳細說明,請參考 Learnmore,使用的plugins為下列所示: LikeButton只要點一下"讚"按鈕,就能讓您和分享者網頁之間產生連結關係。

ActivityFeed顯示您的朋友在個人頁面留下的喜好和意見。

Recommendations提供了個性化的推薦網頁功能,能在您的個人頁面推薦喜歡的網頁。

LikeBox使用者能夠對喜愛的事物建立粉絲專頁,並持續地追蹤消息。

LoginwithFaces進入頁面時,顯示使用者朋友的大頭照,包含登錄的按鈕。

Facepile進入頁面時,顯示使用者朋友的大頭照。

Comments使用者能在您的個人頁面上留言。

LiveStream讓您與使用者共享即時的活動與意見,互動的關係充滿了臨場感。

【FQL】⇑ FacebookQueryLanguageAPI,使用SQL-style的介面去query(查詢) GraphAPI 裡面的資料,提供一些GraphAPI所沒有的進階功能,包括分配大量的queries至單一的呼叫。

您可以透過https://api.facebook.com/method/fql.query?query=QUERY 執行FQL查詢,且能夠使用 format 指定成XML或JSON的回傳格式。

查詢的形式為 SELECT[fields]FROM[table]WHERE[conditions],與SQL不太一樣,FQL的 Form 子句只能包含單一表格。

您可以使用 IN 關鍵字 SELECT 子句或是 WHERE 子句來做子查詢,但是子查詢不能引用外部查詢範圍的參考變數,查詢必須是可加索引的。

有關FQL的詳細說明,請參考PerformanceGuide,使用查詢表格的範例為下列所示: album回傳相簿資訊 application回傳應用程式的唯讀內容 comment得到一或多個fb:comments/評論訊息的交換標識符 connection回傳使用者的朋友和連結的Facebook頁面 cookies回傳cookie的資料 developer回傳在 FacebookDeveloperapplication 指定的開發者用戶的應用程式ID event回傳活動的資訊 event_member回傳使用者的活動狀態資料 family回傳使用者詳細的親友資料 friend確認兩個用戶之間是否為朋友關係 friendlist回傳指定用戶的朋友清單 friendlist_member確定哪些用戶在朋友名單內 friend_request確認用戶是否已經送出交友邀請 group回傳社團的資料 group_member回傳社團成員的資料 like回傳喜愛這項事物的使用者ID link回傳當前用戶所發布的連結 link_stat回傳分享活動的詳細資訊 mailbox_folder回傳用戶的信箱文件夾資料 message回傳以線程的方式呈現的訊息 metrics擷取應用成式的數據 note回傳當前用戶撰寫的網誌資訊 notification得到使用者當前會話的通知 object_url回傳URL的資訊 page回傳Facebook頁面的資訊 page_admin回傳Facebook管理頁面的資訊 page_fan回傳Facebook粉絲頁面的資訊 permissions回傳當前用戶授與的應用程式 permissions_info回傳權限的描述資訊 photo回傳相片資訊 photo_tag回傳相片標籤資訊 privacy回傳使用者的隱私設定資料 profile回傳用戶的個人資料的可視資訊 standard_friend_info確認兩個用戶之間是否為朋友關係 standard_user_info回傳用戶的標準解析訊息 status回傳一個或多個用戶的狀態 stream回傳共享即時的活動與意見之發布內容 stream_filter回傳共享即時的活動與意見之過濾內容 stream_tag回傳共享即時的活動與之意見標籤 thread回傳用戶收件箱的郵件線程資料 translation回傳當地的字串並依照應用程式做翻譯 user回傳詳細的個人資料 video回傳影片資訊 video_tag回傳影片標籤資訊 【FBML】⇑ FacebookMarkupLanguageAPI能讓使用者建立應用程式,您可以掛接到數個Facebook整合點,包括腳色擴展屬性,腳色擴展屬性行動,和畫布(canvas)。

我們不建議新開發者使用FBML,如果您尚未使用FBML,您的應用程式應該要用iframe來執行,使用 JavaScriptSDK 和 Socialplugins 作為Facebook服務的客戶端的整合。

但是,如果您必須創建一個應用程式,是運行於用戶Facebook上的個人資料之標籤(tab),您就需要使用到FBML;因為標籤不支援 iframe,使用的API為下列所示: Tools (工具) User/Groups (用戶/社團) NotificationsandRequests (通知與邀請) PlatformInternationalization (平台國際化) Deprecated (不適用的) StatusMessages (狀態消息) PageNavigation (頁面導覽) Wall (留言板) VisibilityonProfile (內容可視度) Profile-specific (內容特定化) Misc (各式各樣的) EditorDisplay (編輯器顯示) EmbeddedMedia (嵌入式媒體) Dialog (對話) AdditionalPermissions (附加的權限) SocialWidgets (社交小工具) MessageAttachments (訊息附件) Forms (表格) 【OldRESTAPI】⇑ OldRESTAPI是 GraphAPI 之前的版本,它能讓您透過簡單的HTTP請求與Facebook網站交互編程。

如果您是初次來到Facebook平台,我們建議您使用最新的 GraphAPI。

如果您的應用程式尚未更新使用OAuth,請參考以下oldwikidocumentation 提供的詳細建構要求: AdministrativeMethods (管理方法) Login/AuthMethods (登錄/權威性方法) DataRetrievalMethods (數據檢索方法) PublishingMethods (發布方法) FacebookConnectMethods (Facebook的連接方法) MobileMethods (短信服務方法) DashboardAPIMethods (儀表板API方法) EventsAPIMethods (事件API方法) CustomTagsAPIMethods (自定義標籤API方法) 【JavaScriptSDK】⇑ JavaScriptSDK能讓您透過JavaScript進行所有的GraphAPI的功能,它提供強大的客戶端認證與分享功能。

JavaScriptSDK仍需使用 SocialPlugins 的XFBML版本。

要使用JavaScriptSDK,您必須 註冊您的應用程式。

請確保您的基準網域是被設置在您的應用程式駐留的網站基準URL。

使用說明參考 FacebookforWebSites 和Authenticationguide。

網頁加載SDK最有效的方式為非同步載入,以便它不會阻擋載入其他元素到您的網頁上。

此SDK為開放程式碼,可以在 GitHub 網站上取得,API如下: CoreMethods (核心方法) FB.api讓API呼叫 GraphAPI FB.getLoginStatus瞭解當前服務端的狀態,並於用戶連接獲得一個會議。

FB.getSession當前會議使用同步訪問。

FB.init初始化資料庫。

FB.login登錄/授權/權限。

FB.logout後台操作使用者登出。

FB.uiFacebook觸發界面的方法,像是iframe對話框或彈出式廣告,如發布即時訊息、共享連結。

EventHandling (事件處理) FB.Event.subscribe訂閱某一特定活動,當活動觸發時實行您的回傳函式。

FB.Event.unsubscribe刪除訂閱活動,與 FB.Event.unsubscribe 屬性相反。

XFBMLMethods (XFBML方法) FB.XFBML.parse在文檔中解析和展現XFBML標記。

DataAccessUtilities (數據訪問工具) FB.Data.query執行參數化的FQL查詢,並回傳一個可等待非同步的存取資料 FB.Data.query 物件。

FB.Data.waitOn等待到所有查詢的結果呈現待命狀態。

CanvasMethods (畫布方法) FB.Canvas.setAutoResize啟動或停止一個定時器,每隔幾毫秒重新調整你的iframe。

FB.Canvas.setSize告訴Facebook以重新調整iframe。

『AchievementsAPI,ScoresAPI』 平常我們在玩Facebook遊戲時,旁邊都會顯示好友們玩遊戲的紀錄跟分數,就是使用ScoresAPI跟AchievementsAPI的技術。

AchievementsAPI提供使用者發布他們玩遊戲時達到一個Level的訊息。

ScoresAPI提供使用者發布玩遊戲時取得的分數以及最高成績的訊息。

使用者要使用以上API發布訊息前需要通過publish_actions來同意存取分數。

    參考網頁: FacebookAPI概論 參考網頁: Facebook開發指南(1)–基礎概念 參考網頁: 猴筆記-FacebookAPI分類簡介 參考網頁: OldRESTAPI-FacebookDevelopers 參考網頁: 開發Facebook應用程式傑瑞/Xuite日誌/回應(3)/引用(0)沒有上一則|日誌首頁|沒有下一則回應 加我為好友日誌相簿影音 全部展開|全部收合 關鍵字 HiNet部落格背景音樂功能下架 somebodyzerotw's新文章傑瑞FacebookFanPage粉絲頁加入FBML請先讚好再觀看傑瑞[Facebook]GraphAPI-Selection,Introspection臉書粉絲專頁及應用程式開發流程簡介傑瑞FacebookAPI接入facebook幣金流教學 somebodyzerotw's新回應沒有新回應! 傑瑞的神魔之塔傑瑞的C#傑瑞的SEO傑瑞的GIS傑瑞_php傑瑞的twitter應用軟體傑瑞的臉書VB....ActixeXgoogle_code整合yahoo的第三方帳號認證java小小除錯心得篇FLASH_ActionScriptmac相關資訊blog 訪客分析



請為這篇文章評分?