Facebook App 於外部(XFBML) 的頁面產生流程

Facebook 的程式在寫時, 會發現好像有點怪, 好像跟一般寫的網頁程式不太一樣, 主要原因是 Facebook 需要將頁面產生完後的 <fb:xxx> 再做一次處理.

因為 <fb:xxx> 需要 Facebook 另外處理, 所以 若是有頁面參數帶入判斷的, 在此處要特別注意, 頁面若有使用到 <fb:xxx> 的話, 會走下述流程.

註: 下述流程是概略狀況, 依照使用 Library 的方式, 流程會有增減.(此流程是抓 "加入粉絲團" 那段 XFBML 的流程)

Facebook App 於外部(XFBML) 的頁面產生流程

頁面網址: http://example.com/fans.php

  1. http://example.com/fans.php # 先 load fans.php
  2. http://www.facebook.com/extern/login_status.php # 取得 login 狀態
  3. http://www.connect.facebook.com/widgets/fan.php # 取得 widget (<fb:xxx>)
  4. http://example.com/fans.php?fbc_channel=xxx # 真正將頁面 load 出來(將 <fb:xxx> 換成實際 facebook 內容)

因此, 頁面 並不是一次 load 出來, 而是會 load 兩次. (若有 javascript alert(), 會跳兩次)

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料