防疫口罩大作戰
前情提要
因 武漢肺炎疫情、口罩實名制 等重大事件,當衛福部將口罩庫存數量以 open data 的方式開放後,掀起了一場口罩黑客松的熱潮,口罩供需資訊平台 中可以看到,許多貢獻者在數個小時後製作出各式各樣的應用,在這些貢獻者的努力下,透過科技與 open data 彌平了資訊落差。
透過 GOSU BAR 擁抱 open data 製作出你的口罩庫存查詢聊天機器人
短時間的設定,你也可以做出自己的聊天機器人,話不多說,先來看看成果吧!
製作教學
製作完成的流程如上圖,首先我們先建立兩個起始點,分別是收到文字、加入好友。
設定一個決策點,區分引導類型的文字:
當觸發引導文字或成為好友時,提供使用者引導對話:
當使用者輸入其他資訊時,要到 opendata 中 健保特約機構口罩剩餘數量明細清單 抓取最新資料並篩選後提供卡片
首先使用 執行API 節點抓取 CSV 資料, URL: https://data.nhi.gov.tw/resource/mask/maskdata.csv,型態: CSV
為了使用者體驗,當 open data 在維修、更新等情況資料無法讀取時,我們要給我使用者文字訊息回饋:
當讀取成功時,我們要透過 執行程式碼節點 完成資料整理以及篩選:
// 複製專區
let content = (record.content || "").trim();
當資料整理篩選完畢後,我們接下來就要透過流程迴圈方式:
先透過 執行程式碼 來做迴圈的前處理:
// 複製專區
tmp.i ++;
tmp.card = tmp.data[tmp.i];
接著透過決策點控制迴圈:
當找不到相關的資訊:
產生卡片方式
// 複製專區
// 標題
${tmp.card.name}
// 內容
口罩數量狀況:
成人 ${tmp.card.adultMaskCount} 個\t 兒童 ${tmp.card.childMaskCount} 個
地址: ${tmp.card.address}
資料更新: ${tmp.card.updatedAt}
// 按鈕 1 - 連結 - 致電詢問
tel://${tmp.card.phone}
// 按鈕 2 - 連結 - Google Map
https://www.google.com.tw/maps/place/${tmp.card.address}
// 按鈕 3 - 說話 - 更新資訊
${tmp.card.name}
完成流程之後就可以擁有一個自己的口罩庫存查詢聊天機器人了!