寫在開始之前,目的與動機
距離上次參加鐵人賽已經是 2013-2014 的事,很慶幸自己還是活在這行且保有一些技術的熱情還沒死掉。2018 年完成了人生的婚禮,因為個性屬於比較喜歡搞一些特別的,把自己的想法用技術實踐,所以從做影片到還製作婚禮活動官網到婚禮現場都規劃一些比較不一樣的體驗,身為一個技術宅寫一些程式是必須的,所以那時候做了一個當時很流行的 Line Chatbot,整個婚禮報名流程/推播訊息都是透過Line Chatbot完成,幾個朋友回饋都覺得比起一些問卷網站,這種方式還蠻新奇的,後續一些辦婚禮的朋友都還來詢問當時 Line 的一些功能是怎麼用的,也想透過這種方式來玩。2年也過去了,Line 的 Chatbot 也改版了不少,故這次想要藉由鐵人賽,再逐步的好好再把 Line 的文件看過一遍,並重新開發,透過這過程也分享一些當時的一些尚未做的想法實踐
先來聊聊一個基本的 Line 對話的流程大概會遇到什麼事情
- 使用者發送訊息,向 Line Server 發送一個 Request
- Line Server 會知道是哪個 Chatbot 發送的,經過格式處理後會發送到該Chatbot作者所設定的 Webhook
- Webhook (自己所開發的Web Api),能接收到 Line Server 所傳的結構化Request,能知道使用者發送了什麼訊息,應該要做什麼相對應的處理
- 回傳相對應處理的訊息,告訴 Line Server,我們要回覆什麼
- 透過 Line Server 再回傳給使用者
目標
在這個 Line Chatbot 我們將實作婚禮前的資訊查詢,快速建立各種能理解聊天意圖的回覆,宴客報名… 等等,透過這些功能的實作,我們將會學到,如何用 Line 來傳各式各樣的豐富訊息,學到如何開發一個網頁來搭配 Line Liff 來做一些小程序,在婚禮會現場會嘗試用 QR Code/iBeacon 搭配婚禮的報到,嘗試用 Line Pay 來做紅包的電子支付,婚禮現場做一些互動的功能…
所用到的技術預計採用 .NET Core 3.1、Html/CSS/JavaScript、Line API 、Azure的一些服務…等等 (但寫這篇文章時完全還沒實作XD…只能說待訂)
也發現在 Line 官方都沒有 .NET 的 SDK,但台灣有董大偉老師所封裝的LineBotSDK ,日本有pierre3所開源的 LineMessagingApi,但在這 30 天過程也會希望從 Line 的官方文件出發,逐步的封裝成自己的 C# 的函式庫,方便自己未來修改,也放到 Nuget Server/Github 提供給需要的人。
索引
這邊下面會陸續把文章索引加上來,供未來連結用,也希望自己能完成30的挑戰!
- Day 1 用.NET Core與Line Bot製作婚禮機器人
- Day 2 用.NET Core接收第一個Line訊息
- Day 3 用.NET Core接收Line的訊息事件
- Day 4 回覆第一個Line的訊息-歡迎詞
- Day 5 回傳不文謅謅的 Line 貼圖
- Day 6 環保愛地球,回傳電子喜帖
- Day 7 有聲有色,傳送婚禮前導預告影片
- Day 8 一鍵導航婚宴地點辦在哪
- Day 9 來做一些婚紗輪播
- Day 10 婚禮現場交通資訊一覽表
- Day 11 設計師魂發作,改造電子喜帖
- Day 12 Hold on Hold on 重構一下!
- Day 13 各種訊息都玩過了,來聊聊使用者體驗 (Quick Reply)
- Day 14 Line 的圖文選單
- Day 15 切換 Line 的圖文選單
- Day 16 來點AI感,用QnA Maker來搞Line Chatbot回覆
- Day 17 Line Liff App v2 - 用 Vue.js 來實作
- Day 18 Line Liff App v2 — 用 Vue.js 來做報名頁面 — 用 Vue.js 來做報名頁面
- Day 19 Line Liff App v2 — 用 Azure Table 儲存報名資訊
- Day 20 主動推播Line訊息給某個使用者(Push Message)
- Day 21 當有人報名的時候接收通知 (Line Notify)
- Day 22 用QR Code來搞報到 - Razor Page實做 I
- Day 23 用QR Code來搞報到 — Razor Page實做 II
- Day 24 用Line Beacon來搞自動報到
- Day 25 婚禮禮金用Line Pay I
- Day 26 婚禮禮金用Line Pay I
- Day 27 收集婚禮現場照片- 將圖片用C#傳到 Imgur 服務
- Day 28 製作婚禮現場即時留言版- Azure SignalR Service I
- Day 29 製作婚禮現場即時留言版- Azure SignalR Service II
- Day 30 鐵人賽完賽整理&開源