2014年12月7日 星期日

(第二版)用Google Sheet搭配QR Droid APP做出掃描QR code報到系統

晚上11:15 Posted by Envisioning U-Commerce Lab

注意: 有另一篇 (終極版)用Google Sheet搭配APP做出掃描QR code報到系統,與此篇文章做法的差別是使用方式變得非常簡單了,使用者不需要管連動的Google Form參數、不需要進入Script程式編輯模式、不需要自己設定觸發條件、寄信動作也全部自動執行而不需要另找外掛程式來做。



利用此Google Sheet建立副本,由於原來的Google Sheet是已經有一個連動的Google Form,所以建立副本也應該有產生出兩個檔案。








開啟Google Sheet,在「報名表」這個工作表裡面已經有三筆示範資料,請注意第一列不可移除,標題文字及位置也都不可更改,不然會造成程式執行錯誤。而你需要做的就是把某個活動的報名清單複製到B、C、D欄(自第二列之後)。






至於A欄的QRcode,是可以按E欄位置上的綠色圓圈圖案執行程式自動產生的(等後續步驟完成觸發程序設定及指令碼授權)。若你點了其中一格,就會發現該QRcode是依據該列的Uid資料內容來產生的(Google Chart提供的產生QRcode方式)。







前述提到A欄的QRcode是由程式自動產生的,那麼就讓我們開啟 [指令碼編輯器] 看看程式碼,並作一些必要的調整。(不需要懂程式邏輯的,別擔心!)




前兩行如下圖標示紅色底線處,是必須著手更改的。第一行的formURL變數網址部分是要改成被建立出來的連體嬰Google Form序號第二行的field1變數改成Google Form題目之entry編號。





要查出這兩個需要更改的參數,就要把建立Google Sheet副本而同時也被建立出來的連體嬰Google Form開啟,執行「取得預先填入的連結」功能,就能利用此功能查得需要的參數。








經過前面幾個步驟,在預先填入回應而產生的連結網址暫時複製到文字編輯器,就可以分別將(1)、(2)複製取代第一行formURL變數之部分,第二行的field1變數之值,完成異動後記得 [儲存],並設定其 [觸發條件]。




 

而且,為了能在編輯報名資料後都能由程式產生A欄的QRcode,以及掃描QRcode進行報到(自動化完成Google Form報到提交)後能觸發執行一段檢查程式,必須依下列方式 [新增觸發條件] (現在這部份的介面變成從G Suite Developer Hub進行設定)。





首先,選擇 [generateQRcode],這部份的程式就是用來產生A欄的QRcode,其觸發條件應設定為 [試算表] [文件內容變更時]。這個 [新增觸發條件] ,選擇 [markAttendence],這部份的程式是用在掃描QRcode進行報到(自動化完成Google Form報到提交)後所做的檢查程式,其觸發條件應設定為 [試算表] [提交表單時]設定完成按下 [儲存],原則上第一次會出現瀏覽器封鎖接下來的動作,此時必須將瀏覽器選項設定為允許彈出視窗。





而系統會要求對這部分的程式進行第一次的 [Google 驗證],後續每一步都要同意允許。












然後,回到「報名表」這個工作表測試看看,譬如輸入一筆新資料的B,C,D欄,然後按E欄位置上的綠色圓圈圖案(該圖有設定指派指令碼generateQRcode函式),就會執行程式A欄內容自動產生相對應的QRcode。



將A欄複製起來貼到Word檔,就能看到完整的QRcode(稍後測試掃描此QRcode完成報到記錄)。QRcode就只是報到序號,不像前一版文章產生出來的QRcode是包含完整的Google表單網址(原做法的瑕疵是任何人都可以自行掃描之而達成報到記錄存入Google表單)。 









另外,注意第一列的G1欄位,由程式產生一個網址,將網址複製起來,準備寄給簽到櫃台工作人員使用,將自動呼叫QR Droid Private APP執行掃描QRcode報到程序








櫃台工作人員的Android手機,請事先安裝好QR Droid Private APP


工作人員點擊信件內的網址( http://qrdroid.com/scan?q=https://docs.google.com/forms/表單序號/formResponse?usp=pp_url%26entry.編號={CODE} ),就能自動呼叫QR Droid Private APP執行掃描QRcode報到程序。
 

 

由於QRcode就是報到序號,被掃描後(其內容就會置於前述網址的{CODE}位置)自動化完成Google Form提交








回到Google Sheet查看,「簽到表單回應」工作表確實有一筆資料進來了,而且在「報名表」工作表對應的那筆編號被自動標示成綠底(這就是markAttendence程式碼執行檢查後所標示的),這樣就可以核對整個報名表的報到狀況了。











接下來是另一個重頭戲了,如何通知報名表裡的所有對象讓他們知道其報到QRcode呢? 這時就要用Yet Another Mail Merge這個外掛程式來幫忙寄信了。在Google Sheet點選 [外掛程式] [取得外掛程式] 出現的對話框,以"Mail"關鍵字就能找到Yet Another Mail Merge這個外掛程式,點選它並執行安裝程序。(建議這裡是因為接受別人邀請後再進行安裝,這樣可以讓邀請你的人賺到一天多出50封信件寄送的額度。)



安裝完成後,就可以點選 [外掛程式] [Yet Another Mail Merge] [開始合併郵件]


Yet Another Mail Merge在免費使用情況下,初始限制是最多一天只能寄50封信件,若夠用就 [Skip] 這個訊息,但若要再多些額度,就去邀請朋友安裝Yet Another Mail Merge吧,每邀請一個完成安裝就會能一天多出50封信件寄送的額度。


 Yet Another Mail Merge官網有提供一些Email Templates,可以讓我們套用來做通知信草稿,所以去 [Browse more email templates] 瀏覽看看吧。



如下圖,譬如決定用第二個,點選 [USE THIS TEMPLATE]。


到自己信箱的草稿資料夾,就可以發現這份草稿了。而開頭這個Happy New Year圖片不適合用,就將其 [移除]。


然後開始編輯信件的內容,重點是需要套用「報名表」工作表的A、B、C欄的地方,就要加上 <<該欄標題名>>,也就是<<QRcode>>、<<Uid>>、<<Uname>>。



再回到Google Sheet繼續,填好寄件人名稱,選定前述編輯完成的草稿來套用,就可以 [寄出信件] 了。




而信件一一寄出後,回到Google Sheet查看,「報名表」工作表多了一個F欄記錄著信件寄送後的狀態,包括可以追蹤信件是否有被開啟。






至於收件者收到的信件如下圖所示,參加活動就在報到處開啟這個信件內容,讓報到處的工作人員掃描QRcode,就能立即完成報到(如前面已經做過的掃描QRcode測試結果)。





p.s.如果出席者沒有將通知信列印出來帶著或用手機開啟,就沒有辦法掃描其QRcode,那就也讓櫃台工作人員的手機開著Google表單 ( https://docs.google.com/forms/表單序號/formResponse ),也可以請出席者告知其報到編號,讓工作人員手動輸入到表單裡即完成報到。報到現場的建議做法如下:
  • 若出席人員有帶QRcode或記得編號,都應該在同一人服務下完成報到,有一兩位同仁負責此項作業,也就是將下列兩個網址給這些同仁,讓他們可以掃描QRcode或開著Google表單輸入編號。
    http://qrdroid.com/scan?q=
    https://docs.google.com/forms/表單序號/formResponse
    ?usp=pp_url%26entry.編號={CODE} https://docs.google.com/forms/表單序號/formResponse
  • 至於沒帶QRcode也沒記住編號的,就由一位同仁負責接待協助其查詢報名表。最好將報名表工作表示先發佈至網路(如此只限讀取),在報到處用一台平板開著發佈的報名表做查詢,這樣也方便讓報到者確認。查詢到編號,就由這位同仁以手機開著Google表單輸入編號,完成報到程序。
  • 若活動接受現場報名,那就是另外一件事了。另外準備好一個現場報名的Google表單,用一台平板讓現場報名者自行輸入。也可以將此表單網址印成QRcode張貼在現場報名處,以便讓人也可以用自己手機掃描進行報到。