close

               嗨!繼上回8月寫了一篇怎麼建立一個Line Notify Token之後就一直沒有下文告訴大家怎麼應用這個Token(如果不知道怎麼申請Line Notify Token,請參考 https://jackterrylau.pixnet.net/blog/post/228035426-2019-08-09%E7%94%B3%E8%AB%8B%E4%B8%80%E5%80%8Bline-notify-token-%E4%BE%86-%E7%94%A8line-%E5%B9%AB%E4%BD%A0 ),因為我懶…..哈哈。也因為太懶,所以我決定先跳過教大家怎麼用PostMan測試Line Notify Token是否能成功送訊息出來。今天我先直接告訴大家怎麼用比較快。

  我們的目標是在Google建立一個使用者留言表單,裡面有兩個欄位,只有姓名欄跟留言欄,大概就像下圖這樣:

  怎麼建Google表單不是這篇文章的重點,以後有時間(不知道何時)再介紹,這邊我們已經完成第一步動作了,完成表單製作。

 

[編寫Google App Script]

  建好表單之後就是寫程式啦,我們的程式很簡單,就是每當Google表單有新的回覆時,立刻就透過Line發一則通知到我的手機或電腦上,並且告訴我留言者是誰,內容是什麼。

  這邊第二步是透過打開指令碼編輯器來開啟寫程式的專案畫面。只要在你編輯表單頁右上方的 “…”(實際上是直的),按一下選擇指令碼編輯器點擊就可以打開程式編輯畫面。

  下面是指令碼編輯的專案畫面:

  第一次打開是不會有專案名稱的,也就是左上方的NotifyMeMessageViaLine是我後來打上去的,你可以自行在這裡輸入你要的專案名稱,然後我們就要在這邊寫程式啦,請把以下程式碼貼上:

 

function getNewMessageData(e) {

  //token內容請填入你在Line Nofify上所申請的Token

var line_notify_token = "L367r2dMp7rg88iCZ**********xaLR4EvYiqlA5Lpb";

 

  //表單ID是你的編輯的Google表單的代表ID

  var form = FormApp.openById('1-18Q0nAVuBEfi**********f0cUx6uHrwBmoc672DDg');

  //取得所有回覆留言

  var formResponses = form.getResponses();

  //取得共有幾筆回覆留言

  var response_number = formResponses.length;

  //取得最後一筆回覆留言

  var target_resp = formResponses[response_number-1].getItemResponses();

  //留言者姓名

  var resp_user = target_resp[0].getResponse();

  //留言者訊息

  var resp_msg = target_resp[1].getResponse();

  //組合出要送到你的Line的訊息

  var message = "\n你有新留言來自 " + form.getTitle();

  message += "表單\n " + resp_user + " 對你說: " + resp_msg ;

  sendLineNotify(message, line_notify_token);

}

 

function sendLineNotify(message, line_notify_token){

  var options =

   {

     "method"  : "post",

     "payload" : {"message" : message},

     "headers" : {"Authorization" : "Bearer " + line_notify_token}

   };

   UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);

}

然後儲存,就可以測試程式workwork了。

 

  特別注意!!你的Google表單的ID就藏在你那表單編輯頁的URL裡面:

會長得像這樣(那一長串不知道什麼鬼的就是你的表單ID:

https://docs.google.com/forms/d/1-18Q0nAVuBEfivR9**********Ux6uHrwBmoc672DDg/edit

 

[測試程式]

  那要怎麼測試呢? 因為我們的程式需要去讀取Google表單的最後一筆回覆然後組出message再發送到我們的Line,所以我們要測試程式前還是要先到我們的Google表單新增一筆回覆再來做程式測試。

  首先,先回到Google表單編輯頁面,然後按下眼睛(預覽)” Icon,就會跳出讓使用者看到的填寫表單畫面,然後直接填寫留言者及訊息後按提交。

 

 

  接著我們就可以回來測試程式啦,回到寫程式的畫面,然後點選上面的功能列的"執行",點選執行函式,接著選擇執行getNewMessageData,這時候按下去你的Line就會收到剛剛你提交的那一筆留言內容囉!

 點選執行函式:getNewMessageData

Line收到Terry Bot通知我忍者龜要吃Pizza

 

來到這就恭喜你,你的程式已經可以動囉,Line也可以收到訊息了,但到這邊還沒有結束喔,我們還有一項重要的任務要做,那就是設定讓表單每次有人提交回覆時就自動跳訊息通知我們,這一步設定完才算功能完成唷。

 

[設定觸發條件]

  那麼該怎麼設定自動觸發表單回覆時送LineMessage?很簡單唷,還是先回到程式編輯頁,然後按下功能表列下一個長得很像時鐘的按鈕,他的名稱叫做現有專案的啟動程序

  接著會跳出"觸發條件"設定頁面,這時候你的設定應該是全空的,現在我們來"新增觸發條件"吧,右下方有很大顆的藍色新增觸發條件按鈕,按下去就對了。

此時會跳出觸發條件設定框框,只要改一個地方就好了,只要把"選取活動類型"改成"提交表單時"即可,然後按下儲存。

這時候再查看觸發條件頁面你應該就會看到你的觸發條件被列在上面了。

到這邊,我們所有的工作都完成囉,最後一樣要測試一下是不是現在Google表單只要有人提交就可以收到Line通知。

一樣到表單預覽頁隨便填寫新的留言者跟訊息,然後按提交:

當你收到Line Notify的通知後,恭喜你,一切大功告成!!!

 

二○一九年十二月十八日星期三

arrow
arrow
    創作者介紹
    創作者 jackterrylau 的頭像
    jackterrylau

    儒道哲學的浪漫人生

    jackterrylau 發表在 痞客邦 留言(3) 人氣()