2011年11月20日

利用 Google 問卷(試算表)當小型資料庫__(一)製作資料庫

A+

(Pic from: veryicon.com)
剛接觸 Blogger 時,曾有個小疑問:「計數器這麼簡單的功能,竟然不能用 hack 做到,還要使用外掛,哪天外掛的網站掛了,我們也跟著掛了?」這個有點小愚蠢的問題是因為當初根本對網路架構完全不瞭解,現在知道對 Blogger 範本 hack 只能改變瀏覽器端的輸出畫面,對於伺服器端的作業是完全動不到的,更別說是儲存計數器數據需要的資料庫端了。因此,很多再小、再簡單的功能,沒有專屬的資料庫就不可能經由 Blogger hack 做到。

2013. 2.6 公告

由於 Google Form(問卷表單) 近日改版,儲存資料的格式跟舊版不同,若要使用新版的 Google 問卷當資料庫,請參考「利用 Google 問卷(試算表)當小型資料庫__更新版__(一)製作資料庫」的操作步驟。感謝 +Lee Bruce 於【留言 #01】通知此事。


一、尋找資料庫

要擁有免費的資料庫不是那麼簡單,免費的網頁空間 90% 以上不可能開放安裝資料庫(不然公司要賺什麼?),少數給裝資料庫的免費網頁空間,使用者又要擔心這一家不知什麼時候會倒。如果付費買了網頁空間,那麼相信有這個經費的使用者也不必窩在 Blogger 了,有了自己的空間愛怎麼搞都行,不必受到 Blogger 的諸多限制。那麼,Blogger 的使用者,想要有個「安心的」免費資料庫,似乎是無解了?

直到 Google 文件推出了「問卷」功能之後,這個問題的答案才算是露出了曙光,在「Google資料庫方案–Spreadsheet–(1)資料呈現」、「Using Google spreadsheets as your database」、「使用 Google Spreadsheets API 搭建在线应用」這幾篇文章提到了可以利用 Google 問卷,把 Google 試算表當成小型資料庫來使用,將問卷的回答存在試算表後,Google 提供了多種轉換格式,若轉成 Json 格式的話,就能供 Blogger 方便地以 Javascript 讀取了。

可惜的是無法高興得太早,搜尋到的網頁資料都只教了如何 "讀取" Google 試算表資料,沒有半篇同時說明如何 "儲存" Google 試算表資料。相信只能讀不能寫的資料庫沒有人想要用,所以 "儲存" 的問題得自己解決,這一點留待下一篇來談,目前先來看看製作資料庫的步驟。


二、製作資料庫

以下為 Step by Step 說明,雖然已經有一些教學網頁,但那些網頁並沒有與 "寫入" 資料相關的說明與步驟,所以還是請按照以下的步驟進行比較保險:

1. 連結到「Google 文件」首頁、登入帳號後,出現以下畫面,請按「建立」→「表單」,可建立一份問卷。




2. 出現以下畫面,問卷標題請自行命名,而預設會給兩個問卷問題,目前最重要的是將下方紅色框框中的網址記錄下來:



每個試算表的網址都不同,這個網址「https://docs.google.com/spreadsheet/viewform?formkey=dHlSSnRRR0w5eGFzRExRTWRjbWNLN0E6MQ」最重要的資訊是「formkey=」後面的這一串亂數「dHlSSnRRR0w5eGFzRExRTWRjbWNLN0E6MQ」,這可以說是該試算表的身份證,之後會用到(請記下自己的試算表身分證,而非以上的字串)。


3. 我們的資料庫需要用到幾組資料,問卷的問題就必須設一樣多的數目,假設目前需要用到四筆資料,那麼就要把問卷問題增加到四個,請參照下圖,按「新增項目」→「文字」,可增加一個問題,請重複動作直到滿足問題數目為止。



在每個問題的右方有個鉛筆圖示以及紅色框框「複製」圖示,這裡至關重要的一點是千萬不要使用複製功能!使用複製功能可以快速地將問題內容、備註、設定複製,節省製作問題的速度,但只要使用了複製功能,之後就很難將資料寫入正確的儲存格了,這一點必須謹記。

2011.11.25 增補

除了不要使用複製功能,也千萬不要使用複製旁邊的「垃圾桶」來刪除問題,結果一樣都會使資料無法寫入正確的儲存格!!


4. 問卷標題打好,接下來填入問題標題。請依下圖按「鉛筆」圖示進行編輯,依序填完四個問題標題:



填入的標題盡量簡單,建議使用英數組合,因為這裡設定的標題之後會成為 javascript 的變數,請避免使用中文以防止有抓不到資料的意外發生。


5. 標題都填完後,大概類似下面的畫面,請按右上方的「儲存」:




6. 接著按「查看回覆」→「試算表」,進入試算表畫面:




7. 除了 A 欄是系統預設的「時間戳記」外,B~E 欄就是我們剛剛依序填入的四個問題標題了:



右上方有個「共用」按鈕,在其他教學網頁會請你分享出來,也許這些教學網頁誤以為要分享出來才能在網路上存取這個試算表,實際上在網路上存取該試算表的設定並非在此,因此 WFU 建議千萬不要按這個按鈕,否則知道此連結的人就擁有更改試算表內容的權利,我們總不希望自己的資料庫資料被別人竄改吧!當然,如果要和團隊一起編輯試算表的話,就得分享出來。


8. 按「檔案」→「發佈到網路」,在網路上存取試算表的真正設定在此:




9. 按下下圖的「開始發佈」按鈕後,我們就可以在網路上 使用各種方式來存取試算表了,例如 XML、HTML、RSS、Json等等的方式;只要沒按這個按鈕,這個試算表沒有人可以用以上提到的任何方式(XML、HTML...)讀取的,包括自己在內。




10. 按下「開始發佈」按鈕後,會出現以下畫面:



第一個紅框框請選擇「RSS」,接著第二個紅框框的內容「https://spreadsheets.google.com/feeds/list/0AikclfTTti-0dHlSSnRRR0w5eGFzRExRTWRjbWNLN0E/od6/public/basic?alt=rss」請全部複製起來,每個試算表的框框內容都不同,請記住自己的。最後按下「關閉」按鈕關閉此視窗。


11. 好了,來測試看看這個問卷能否正常運作,按下「表單」→「前往即時表格」,系統會另開問卷視窗:




12. 針對四個問題隨便填入四組答案,按「提交」送出資料:




13. 回到試算表的視窗,會發現速度很快,Google 在一瞬間已經將答案寫進試算表了,看看時間戳記就知道了:




如果到此都非常順利的話,恭喜你已經完成資料庫的建製了,下一篇我們要利用 Blogger 來存取資料庫的內容,實現許多以往不可能做到的功能!


製作試算表資料庫系列文章:


1. Google資料庫方案–Spreadsheet–(1)資料呈現
2. Using Google spreadsheets as your database
3. 使用 Google Spreadsheets API 搭建在线应用

7 則留言:

  1. Google 留言表單 似乎做了大改版...

    已經找不到 formkey 了

    有其他辦法可以找出來嗎?

    不然沒辦法自己創一個試算表了,目前只差這一步 Orz

    回覆刪除
  2. <8490270375928506514>(以上內容請勿刪除,以下引言請自行刪減) [quote]Google留言表單似乎做了大改版...已經找不到formkey了有其他辦法可以找出來嗎?不然沒辦法自己創一個試算表了,目前只差這一步Orz[/quote]

    目前成功了,但是我是從垃圾桶挖出舊版本的表單,才找到他的 formkey 來使用,如果是剛要嘗試安裝的朋友,可能要另尋方法了...

    回覆刪除
  3. <8490270375928506514>(以上內容請勿刪除,從括號之後開始留言)謝謝測試,Google Form 做了改版,儲存資料的格式已經不同,因此本文有必要更新了。

    回覆刪除
  4. 作者已經移除這則留言。

    回覆刪除
  5. 現在怎麼用呢?新建的表單發佈出來的地址已經完全變掉了。

    回覆刪除
  6. <6509781590731757462>(以上內容請勿刪除,從括號之後開始留言)請看更新版文章開頭的公告

    回覆刪除
  7. 用下面的方式:
    https://spreadsheets.google.com/feeds/cells/1Qsrufg16-cHGoEw5XFVYwuCioUmGl87Q4ns6gKUWksQ/1/public/values?alt=json

    回覆刪除

張貼留言注意事項:

◎ 勾選「通知我」可收到後續回覆的mail!
提問請附網址、詳細描述狀況,如提供的資訊不足,則無法回覆。
◎ 請在相關文章留言,與文章無關的主題請至「Blogger 中文論壇」。
◎ 若詢問 CSS 、非官方範本問題、或貴站為商業網站 ,請參考「本站諮詢頁面」→「1. 諮詢服務」
◎ 若留言要輸入語法,"<"、">"這兩個符號請用其他符號代替,否則語法會消失!
◎ 若發現留言不見了,通常是因為 "複製貼上" 的內容常被系統判定為垃圾留言,請不用擔心,我會定期將留言恢復。
◎ 本站「已關閉自刪留言功能」。