TShopping

 找回密碼
 註冊
搜索
查看: 3195|回復: 2

[教學] Facebook API

  [複製鏈接]
發表於 2012-4-14 00:26:35 | 顯示全部樓層 |閱讀模式
 
Push to Facebook Push to Plurk Push to Twitter 
一、Facebook API 基礎概念
  • Facebook API 概論 :
  • API 最大的好處在於可以讓程式開發人員只需要根據 API 定義的方式呼叫相對應的功能,無須瞭解該功能底層的原始碼為何或理解其內部運作機制的細節。Facebook API 正是 Facebook 所推出的應用程式介面,我們可以透過這個應用程式介面存取 Facebook 中使用者、群組、個人檔案、相片等資料。
  • 使用 Facebook API,須先下載 API 函式庫,並安裝到 Facebook 應用程式所在的伺服器。目前 Facebook 共有六種官方支援的 函式庫 ,分別是 PHP5、JavaScript、Facebook iPhone SDK、ActionScript 3.0、Microsoft SDK 與 Force.com。
  • Facebook 提供的技術資源 :
  • Facebook 的應用程式又分為 FBML 和 iframe 兩種,FBML (Facebook Markup Language) 是 Facebook 提供的網頁標記語言,與 HTML 類似,為了隱私權、安全性以及一些其他的考慮因素,Facebook 並不允許用戶使用所有的 HTML 標籤。FBML 的運作模式是,用戶在自己的伺服器上用 FBML 開發網站,然後在 Facebook application 中設定網站路徑 (canvas page),Facebook 將用戶的 Request 處理後傳到開發者的 Web Server,接收到開發者的 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 也很親切地為各位準備好了許多程式語言的 Client Library,PHP、Javascript、IPhone 和 Flash / Action Script 的 Library 是由 Facebook 官方提供,而 C#、Java、C++…等等多種不同語言的 Library 都有第三方的開發支援,甚至像是 LISP 這樣的人工智慧語言都有。開發者幾乎可以使用 API 操作 Facebook 的所有資訊,像是朋友名單、塗鴉牆、活動名單,邀請朋友等等。
  • FQL (Facebook Query Language),使用 SQL 風格的 Facebook 資料查詢語言,可以透過 API 中的 fql.query 和 fql.multiquery function 查詢虛擬資料表中的資料,這些虛擬資料表包括 album、user、status、profile…等等許多不同種類的資料。其中絕大多數都可以透過 API 介面來取得,但是你也可以使用 FQL 來做更直接的查詢。FQL 操作這些虛擬資料表的方式就跟 SQL 差不多,但是 FQL 還是有實作一些特別的功能讓開發者存取這些資料的時候更為方便簡單。FQL 只支援 SELECT 敘述,是不能做 Update、Delete 和 Insert 操作的。
二、Facebook API
  • 權限 API (Permission API)
  • 管理應用程式的開發者設定
  • 擷取應用程式的各項評估資訊
  • 阻擋特定的使用者
  • 取得應用程式的公開資訊
  • 授權 API (Authorization API)
    議程(Session)與登入資訊的管理
  • 批次 API (Batching API)
    稍微瞭解 Facebook App 運作方式的人都知道,應用程式存放的地方不是在 Facebook 的 Server 群之中,而是在開發者自己的遠端 Hosting 上面,所以 App 與 Facebook API 之間的溝通就會透過遠端 API Call 來進行,當然這也就造成了 App 運作效能最大瓶頸之所在。所以 Facebook 提供了批次 API 讓開發者可以一次最多將20個 Facebook API Call 打包成一次的 HTTP Request,並可設定是要用循序的或是並列式的去發出。
  • 評論 API (Comments API)
    開發者可以透過此 API 對 Feed Stories 的評論進行程式化的取得、建立、刪除。
  • 資料存放 API (Data Store API)
    簡言之,開發者可以透過這個 API 將資料存放在 Facebook 的伺服器中 (建立資料表格、物件以及其間的關聯) 。
  • 事件 API (Event API)
    允許應用程式以使用者的身分去建立擁有 RSVP (ReSource reserVation Protocol,資源預留協議) 功能的事件、管理事件專屬的媒體、事件輸出功能。
  • FBML API
    建立客制的 FBML 標籤、更新被快取的圖片、上載地區化的文字、更新 Profile Box 的 FBML。
  • 訂閱 API (Feed API)
    程式化的建立新聞樣板、程式化的新聞發布。
  • FQL API
    應用程式可以透過 SQL-Like 的語法去 Facebook 擷取想要的資料,許多 Facebook API 內部也大量的使用 FQL,所以直接使用 FQL 擷取資料可以更有彈性與效率。透過 FQL API 開發者可以發出單一 FQL 查詢或是循序的相依 FQL 查詢,遺憾的是 preload FQL 無法透過此 API 進行。
  • 連結 API (Links API)
    發布連結到使用者的塗鴉牆之中,功能就如同 Facebook 網站上無所不在的 Share 功能鍵。
  • 用戶管理 API (User Management API)
    這組 API 應該就是 Facebook 最重要的 API 了,主要功能是用來管理 Facebook 最重要的使用者社群圖像,包含取得特定使用者的個人資訊、朋友清單、檢查使用者是否授權某些應用程式等等。
  • 網誌 API (Notes API)
    允許應用程式去發布、編輯、刪除 Facebook 上的 Notes,Notes 就是使用者位於 Facebook 上的 Blog。
  • 消息 API (Messaging API)
  • 發送 Facebook 通知 (Notification) 以及 email
  • 更新使用者在 Facebook 上的狀態
  • 發送 LiveMessages
  • 頁面 API (Pages API)
    Pages 以前就是大家所熟悉的粉絲專區,但是近期 Facebook 將其重新定位後,Page 運作起來就像是一般的使用者 Profile,透過 Pages API,可以知道目前登入的使用者是否是該 Page 的管理者,也可以知道該 Page 加入了哪些應用程式,附帶一提的是,Page 的粉絲就如同一般使用者 Profile 的朋友一般。
  • 影像 API (Photo and Video API)
    應用程式透過此 API 可以建立相簿、上傳相片與影音、取得標籤資訊。
  • 配置 API (Profile API)
    應用程式頁籤 (Application Tabs)、使用者的應用程式資訊區塊 (Application Profile Boxes)、信息區(Info Sections)。
  • 開放標準 API (Open Stream API)
  • 自 Wall 中讀取出並發布內容
  • 管理評論並對個別的 Feed Stories 下評價
三、API 類別
  • Ⅰ. Core APIs  

  • Ⅱ. Advanced APIs  


  • Ⅲ. SDKs

Graph API
  • Graph API 能讓您在 Facebook 社交平台上記錄活動以及連結。Graph API Reference 提供所有活動以及連結的 API。有關 API 的介紹及概念,請參考 Graph API overview,使用的 Objects 為下列所示 :
Social plugins
  • Social plugins 能找出您的朋友喜歡什麼、分享什麼,回應些什麼,是 Facebook 的擴充元件,提供您與您在 Facebook 網站上同樣等級的隱私控制,完全由您決定要跟誰分享哪些內容。有關 Social plugins 的詳細說明,請參考 Learn more,使用的 plugins 為下列所示 :
  • Like Button
    只要點一下 "讚" 按鈕,就能讓您和分享者網頁之間產生連結關係。
  • Activity Feed
    顯示您的朋友在個人頁面留下的喜好和意見。
  • Recommendations
    提供了個性化的推薦網頁功能,能在您的個人頁面推薦喜歡的網頁。
  • Like Box
    使用者能夠對喜愛的事物建立粉絲專頁,並持續地追蹤消息。
  • Login with Faces
    進入頁面時,顯示使用者朋友的大頭照,包含登錄的按鈕。
  • Facepile
    進入頁面時,顯示使用者朋友的大頭照。
  • Comments
    使用者能在您的個人頁面上留言。
  • Live Stream
    讓您與使用者共享即時的活動與意見,互動的關係充滿了臨場感。
FQL
  • Facebook Query Language API,使用 SQL-style 的介面去 query (查詢) Graph API 裡面的資料,提供一些 Graph API 所沒有的進階功能,包括分配大量的 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 的詳細說明,請參考 Performance Guide,使用查詢表格的範例為下列所示 :
FBML
  • Facebook Markup Language API 能讓使用者建立應用程式,您可以掛接到數個 Facebook 整合點,包括腳色擴展屬性,腳色擴展屬性行動,和畫布 (canvas)。我們不建議新開發者使用 FBML,如果您尚未使用 FBML,您的應用程式應該要用 iframe 來執行,使用 JavaScript SDKSocial plugins 作為 Facebook 服務的客戶端的整合。但是,如果您必須創建一個應用程式,是運行於用戶 Facebook 上的個人資料之標籤 (tab),您就需要使用到 FBML; 因為標籤不支援 iframe,使用的 API 為下列所示 :
Old REST API
  • Old REST API 是 Graph API 之前的版本,它能讓您透過簡單的 HTTP 請求與 Facebook 網站交互編程。如果您是初次來到 Facebook 平台,我們建議您使用最新的 Graph API。如果您的應用程式尚未更新使用 OAuth,請參考以下 old wiki documentation 提供的詳細建構要求 :
JavaScript SDK
  • JavaScript SDK 能讓您透過 JavaScript 進行所有的 Graph API 的功能,它提供強大的客戶端認證與分享功能。JavaScript SDK 仍需使用 Social Plugins 的 XFBML版本。要使用 JavaScript SDK,您必須 註冊您的應用程式。請確保您的基準網域是被設置在您的應用程式駐留的網站基準 URL。使用說明參考 Facebook for Web SitesAuthentication guide。網頁加載 SDK 最有效的方式為非同步載入,以便它不會阻擋載入其他元素到您的網頁上。此 SDK 為開放程式碼,可以在 GitHub 網站上取得,API 如下 :
  • FB.api
    讓 API 呼叫 Graph API
  • FB.getLoginStatus
    瞭解當前服務端的狀態,並於用戶連接獲得一個會議。
  • FB.getSession
    當前會議使用同步訪問。
  • FB.init
    初始化資料庫。
  • FB.login
    登錄 / 授權 / 權限。
  • FB.logout
    後台操作使用者登出。
  • FB.ui
    Facebook 觸發界面的方法,像是 iframe 對話框或彈出式廣告,如發布即時訊息、共享連結。
『Achievements API,Scores API』
平常我們在玩Facebook遊戲時,旁邊都會顯示好友們玩遊戲的紀錄跟分數,就是使用Scores API跟Achievements API的技術。
Achievements API提供使用者發布他們玩遊戲時達到一個Level的訊息。
Scores API提供使用者發布玩遊戲時取得的分數以及最高成績的訊息。
使用者要使用以上API發布訊息前需要通過publish_actions來同意存取分數。



 

臉書網友討論
 樓主| 發表於 2013-2-1 19:26:18 | 顯示全部樓層
牛X海海!!!

版主招募中

發表於 2014-6-19 11:30:10 | 顯示全部樓層
呵呵,谢谢楼主了~~~~~~~~~~~


您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2016-12-7 00:13 , Processed in 0.060754 second(s), 17 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表