facebook程式設計(1)-應用程式設定

最近這陣子喵咪研究了一些facebook的程式,

它的程式既簡單又困難…

簡單的是它的語法使用真的很簡單,輕輕鬆鬆地就可以和facebook連結,取得資訊,

困難的地方是,它的文件太亂了,程式的版本又多,即使在網路上抓到的程式也不一定能用,

所以當我終於有一點了解之後,我決定把它寫下來。

原本想要直接從第2篇程式架構說明開始寫的,

但是後來想想,既然都要寫了,就從頭到尾交待清楚吧,

所以決定還是從怎麼樣建立一個新的應用程式開始。

重點 1.facebook開發人員建立新的應用程式。

這一步簡值是廢話.廢話+廢話,只要知道你必須到那裡建立新的應用程式就可以了,

授權給「開發人員」之後,以後就可以在個人帳號裡的「應用程式設定」中找到它。

重點 2. 取得程式參數

建立好程式之後,會傳送到程式的設定頁面,

在基本資料這裡有三個重要的程式參數,之後寫程式的時候會用到,到時候要記得回來這裡看。

除此之外,這裡也可以編輯「群組簡介」,當你發佈到facebook的程式目錄時,會使用這裡的介紹做為程式的說明,

這裡還有一個重要的參數,就是「書籤網址」,當別人把你的程式加入書籤後,會連到這裡寫的網址,

至於該設定什麼網址,後面會再說明。

重點 3. 設定畫布網址以及程式的實際位置。

建立好應用程式之後,第一件事情就是設定畫布,

facebook的應用程式主要是提供我們一個窗口,讓我們把程式掛上去,

所以所謂的畫布就是那一個窗口啦~(展示窗、攤位,隨你愛怎麼想)

這裡一定要設定的參數是「Canvas Callback URL」,這是你應用程式的實際位置(只能寫到目錄網址,不可以寫到xxx.php),

同時也是當你的網站呼叫facebook時,它回傳參數的預設值,

因此,我們都知道有些網站可以使用facebook帳號進行登入,

它們基本上只要設定這一行即可(通常是設定這一行以及聯外通網址)。

至於「畫布頁面網址」就是你在facebook上看到的網址,

如果你的應用程式是要讓人在facebook上面玩的,就要取一個網址名稱啦,

取好網址後,要記得把這個網址po到書籤網址上(請參考重點2),否則當別人加入書籤後,點書籤會連到你程式的實際位置去。

重點 4. 決定使用Iframe或FBML的呈現方法。

在畫布設定中,還有一個重點就是決定程式的呈現方式,

所謂Iframe就是內嵌框架,相信對HTML了解的人應該對這個不陌生,

你可以把它比喻成剪了一個洞的白紙(相框),洞口就是讓你顯示你的程式畫面(這是什麼爛比喻啊?);

另一個就是真正的白紙,你愛怎麼畫就怎麼畫。

在Iframe中,因為它只是一個窗口,所以facebook不會管你做了什麼事,寫了什麼程式,

可是在FBML畫布中,它就會限制你可以使用的語法了,

而且如果你的程式是原本就已經存在的,用Iframe就可以直接套上(就像換照片一樣簡單)

而在FBML中,因為語法的限制,所以通常無法直接套上。

這樣聽起來好像是Iframe比較好?

可是在喵咪實際研究之後,決定把所有程式改成FBML的模式。

為什麼呢?為什麼呢?因為FBML做得到的事情,在Iframe模式下很難實現(搞好久都沒成功)

可是FBML可以使用iframe的語法,也就是說Iframe的好處FBML都做得到!!!

(簡而言之,Iframe的優點FBML都有,但FBML有的優點Iframe卻沒有)

所以喵咪後面的程式都使用FBML模式進行,

第2篇會再詳細說明它們之間的差異。

重點 5. 設定回呼網址。

這裡有幾個參數要特別注意的,在這裡做一下說明,

雖然我目前還沒有實作它,但好像設定錯誤也會有問題,所以在這裡提出來讓大家知道一下。

  • 驗證→Post-Authorize Callback URL:當使用者授權程式時,會傳送參數到這裡。不可以寫facebook的網址。通常設定為程式的實體位置。
  • 驗證→Post-Remove Callback URL:當使用者移除程式時,會傳送參數到這裡。不可以寫facebook的網址。通常設定為程式提供者的首頁。
  • 畫布→Post-Authorize Redirect URL:當使用者授權程式時,會傳送參數到Post-Authorize Callback URL,並且將網頁跳轉至這個網址。預設值為程式畫布頁面網址。

以我自己的程式寫法,Post-Authorize Callback URL是收不到任何資料的(沒有回傳值),

也許是因為我沒有使用facebook提供的登入按鈕吧,

依facebook的文件說明,它是會回傳使用者資料的,

有興趣的人再研究吧~

重點 6. 將程式加入粉絲或個人頁籤。

每個人或是粉絲專頁的上面都有塗鴉牆、資料…等等的頁籤,

要如何把程式加入頁籤呢?

首先,要到「個人檔案>個人檔案標籤」進行設定,

「標籤名稱」指的就是你頁籤上要顯示的名稱,

「標籤網址」就是當別人點下那個頁籤時,要顯示的畫面,

由於頁籤下的內容是不允許使用iframe語法的,所以可能會需要另外做一個網頁,

舉例來說,如果你的程式實際位置的首頁檔名是index.php,然後頁籤的畫面是放在tagPage.php,

那你就在這裡寫tagPage.php

如果要把程式加入粉絲中,「驗證設定」中的Facebook 粉絲專頁記得打勾一下。

(透過這種方法,就可以替粉絲頁增加自定頁籤)

附帶一提,如果你的程式實體位置是http://www.domain.com/facebook/

你的畫布網址是http://apps.facebook.com/xxx/

那麼http://www.domain.com/facebook/folder/

就會自動對應到http://apps.facebook.com/xxx/folder/

檔案也是一樣的,大家可以自行運用^^

(這樣可以在一個facebook應用程式中放很多隻小程式)

最後,當你以後要回來修改設定時,可以在「我的應用程式」中,選擇「編輯設定」,

就會回到前面的設定頁面了,

另外,如果你的程式是要給所有人使用的,也可以「編輯應用程式專頁」

這裡可以設定你以後po到facebook應用程式目錄時,屬於那一個分類,

至於要怎麼po到公開目錄下呢?你有看到程式名稱下有一個「目錄狀態 Not Submitted」嗎?

點選「提交」的連結進行設定就ok啦~

那麼facebook的應用程式設定就先寫到這裡了,

還剩下很多空白對吧?因為我也不知道那些是幹嘛的~XD

有興趣的人請自行研究啦~