2008年12月16日 星期二

Friend Connect Custom Gadget 經驗?

一些無聊晃進來的朋友應該有發現, 左上角多了幾個之前沒看過的 gadget, 因為我又開始做無聊事了...

看到許多人裝 Google Friend Connect, 而我個人對較為開放的 Protocol 是採較為正面的態度, 所以就裝起來玩玩看, 覺得這是一個可以發展的東西, 所以就想要寫些有趣的 gadget....

事實上這個 GFC 跟 Gadget 不一樣的地方就是以前在做 Gadget, 若要有會員系統就要想辦法去做一套, 不然就是吃別人的像 Yahoo OAuth, OpeinID, MSN Cotact 等, 但除了 OpenID 外都是由大公司 Host 的, 但 OpenID 說要有人 Host, 也不方便...

Google Friend Connect 是一個照 Opensocial (雖然一開始也是 Google 自己的) 的 Container (容器), 但這容器是誰都可以 Host 的, 不像 Facebook 或 MSN Contact 都是隱含有一個 "Root" 根的概念, 這個根必然是 MSN 或 Facebook....

而對我而言, 只要沒有一個必然的 "Root", 如同 Jabber 一樣, 都是這樣的實作, 我就比較容易支持這樣的 Project, 在玩了他提供的 Gadget 後, 覺得蠻弱的, 只有 "留言版" 也比較像樣, 只是不合我的要求, 因此也只好想辦法去開發自己要用的 Gadget.

後來就提出 "GFC 踩踩樂計劃", 最主要的是 GFC 提出一個可以判讀與區分會員的系統, 基本上就我的 "統計狂", 就認為這是一個跟以往不同的計數器, 最主要是有使用者的觀念, 因此提出了一個想法:
1. 計錄使用者狀況
2. 讓讀者知道自己的讀取方式
3. 辦活動與比賽方便
所以初步規劃了 5 個功能:
1. 記錄第 10, 30, 100, 300, 1000, 3000, 10000 等人次到站
2. 記錄第 n*N 個到站, N 由站長決定
3. 上面可以日, 週, 年, 開站等計算
4. 顯示目前連續最多天來站的讀者
5. 顯示目前讀者來站天數與連續天數與最高連續天數

然後就打算開始寫啦, 問題我以前從來沒寫過這樣的程式耶, 我唯一用過的 Javascript 指令是 "document.write", 所以真的是為了寫這個程式, 嚴格說也是要新學一個語言, 幸好語言這種東西是不用學的, 只要用了就是了, 麻煩的是要努力查寫法, 因為我連如何寫 if 的 condition 都不知道, 真是辛苦阿...

不只要寫, 甚至要用其 OpenSocial 的功能, 只好慢慢摸索了, 雖然 GFC 提供的唯一的一個 Custom Gadget 的 demo: Lame Game, 我就想辦法從這改囉?

花了一個晚上, 終於改出來, 其中還向 mat 求救與討論, 完成了三個基本 Gadgets: "點閱數", "最近到訪時間", 及 "累積閱讀時間" 三個 Gadgets, 就是右邊現在顯示的三個, ....

本來就想這樣就 OK 了, 但第二天才發現一個很嚴重的問題, 因為 IE6, IE7 的問題, 會讓整個網站無法閱讀, 所以第二個晚上努力研究如何避免這問題, 最後是寫了判斷式去排除 IE6, IE7 的閱讀.

只是這樣的 Gadget 連我自己都不滿意, 因為無法連結, 所以只能看到圖與名字在上面, 也連不到甚麼東西, 所以第三個晚上就想辦法把這個名字加連結, 但此時發現 OpenSocial 的 URL 沒有一個是有資料的, 我只好去 Google Discussion Group 求救, 等了一天還是沒回應...

但寫到這邊時, 發現留言版有個 canvas 模式是不錯的連結, 就只差無法知道 site ID, 只是這個很明顯的是跟 OpenSocial 無關, 甚至 Gadget 這 API 或 View Class 也是派不上用場, 所以又上去 Google 討論區求救, 順便回答我自己的問題...

第四晚奇蹟發生了, 原來 Google 的 Friend Connect Team 把 IE6, IE7 的問題避免掉了, 第二晚找的方法雖然派不上用場, 但至少寫出來的 Gadget 是大家都可以用了, 只是討論區還是沒有人可以給我回應, 找遍文件也看不到有關聯的東西...

本想就此放棄, 就到處晃, 到了 Google Analytics 後台看到底有多少人在用這 Gadget, 此時在看網址時發現到在呼叫 Custom Gadget 時有一個 communityID 參數, 就是 GFC 的 site, 然後花了半小時把這補上, 終於結束四天的征戰, 這幾個 Gadgets 終於可以用了...

一直到今天, 才終於看到有一個人來討論區回大家的話, 看了一下他的 Profile 是 "Google Friend Coonect Technical Leader", 此時回來看, 才發現他也來我那個部落格加入兩個不同的帳號, 雖然我的問題已經不用他回答了, 但至少在練習這基礎功後, 準備真的開始寫 GFC 踩踩樂了...

事實上像這樣自問自答的找問題的答案, 也不是第一次了, 在 15 年前開發 BBS 的時候, 也常在討論區自問自答, 因為碰到的問題大多必須靠自己來解決, 甚至這次解決的經驗更是在一個沒有刻意去找尋答案的地方找到答案, 不可說不妙阿....

因為我在想台灣這邊用 GFC 的人目前只有自己架設 Blog 以及 Blogger 才可以用, 所以這次就打算用英文寫, 所以目前唯一的說明在: "Custom Gadgets for Google Friend Connect", 而我知道我不是一個有能力寫教學的人, 所以有誰有興趣幫我寫一個較完整的中文教學阿?

3 則留言:

  1. 踩踩樂是什麼東西?
    "點閱數", "最近到訪時間", 及 "累積閱讀時間" 三個 Gadgets, 該如何使用呢?

    回覆刪除
  2. 很有趣的 GFC 應用...

    回覆刪除
  3. to taglife:

    你可以看後面 Alex Lee
    http://alex.obm.tw/node/545
    這篇...

    回覆刪除

熱門文章