2008年8月2日星期六

Facebook API 初試

前排香港好像好興玩一隻叫"古惑仔"的Facebook Application,我都玩左10分鐘左右,覺得太過無聊,所以就Remove了...不過就玩過下Facebook API,原因是想知道這API的商業價值。因為FB的Application是很多,但是真正Third Party的Application好像真的很少呢。

Facebook的API跟PayPal / eBay / Google的都很相似,都是可以經"REST"的介面,把Parameter放上URL去跟Web Service溝通。但Facebook比較特別的是,除REST外,還有"FQL","FBML","XFBML"和"FBJS"的方法。我全部都小試一下,當中FQL比較特別,做個小介紹 :

FQL:
你可以理解為直接在Facebook DB上,於SQL Syntax去Query。(當然有很多限制)而執行FQL依然要引用API中的"fql.query"方法,不是真的給你連接去Database。
FQL Table : http://wiki.developers.facebook.com/index.php/User_(FQL)
Example :
SELECT name FROM user WHERE uid=753087004

return values就會是 :
<?xml version="1.0" encoding="UTF-8"?>
<fql_query_response xmlns="http://api.facebook.com/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" list="true">
<user>
<name>Cheung Ming Ming</name>
</user>
</fql_query_response>

你可以用FQL查詢到很多資料,例如group 的資料, group中有什麼member , album 中有什麼photo , photo 中的image source , user的資料。

或者大家會和我一樣都想到,可以自己做一個facebook user search engine,但事實上做不到的。
原因是使用FQL查詢,先決條件就是你要知道userid , groupid, albumid 等等。
你可能會想到用
SELECT name FROM user WHERE timezone = '8' //取得GMT+0800 (香港)的用戶
/*或*/
SELECT name FROM user WHERE uid > 0 

等等Query去取得User List,但Facebook只會return 一句 errormsg : Your statement is not indexable
因為Facebook文件已經寫明 , uid 和 name是Indexable column ,必須輸入,而且exactly要用"="的operator,因為FQL不支援"LIKE"。當然用REST方法同樣做不到。
參考FQL Functions and Operators :
http://wiki.developers.facebook.com/index.php/Functions_and_Operators

試玩了幾小時,我覺得Facebook API真的很容易使用,幾乎不用看任何Document就可以立即使用。
而且透過FBML,即時Output HTML,令到寫FB App真的很方便。使用FBJS又可以呈現出Facebook的Web 2.0效果。

做Facebook Application十分容易,但如果用VB,C#寫呢?我個人覺得基於上述的理由,擴展性實在不高,所以想靠Facebook API賺錢的人,要認真想一想。

題外話,Facebook好像今天改版了,Home的介面不同了,網址都變成"http://www.new.facebook.com/home.php"

3 則留言:

  1. Facebook新design5月時已經開始左
    不過一直都未搞掂,只有beta版http://www.readwriteweb.com/archives/facebook_new_profile_dev_sandbox.php

    回覆刪除
  2. 你好!,

    本人是想學寫Facebook app for fun, 但未有Server, 是否要Set up server first? 本人也想學如何set up server, 因facebook developers official 網寫要Appache set up先得? 同如何才找到正確步呢?

    請幫忙!!!謝謝你~

    回覆刪除
  3. 你好。。
    很想知道你对facebook下开发应用程序的理解,,因为我在写毕业论文哦。。
    :bouncy: 。。。期待你的回复。。

    回覆刪除