寫在開始之前,目的與動機

距離上次參加鐵人賽已經是 2013-2014 的事,很慶幸自己還是活在這行且保有一些技術的熱情還沒死掉。2018 年完成了人生的婚禮,因為個性屬於比較喜歡搞一些特別的,把自己的想法用技術實踐,所以從做影片到還製作婚禮活動官網到婚禮現場都規劃一些比較不一樣的體驗,身為一個技術宅寫一些程式是必須的,所以那時候做了一個當時很流行的 Line Chatbot,整個婚禮報名流程/推播訊息都是透過Line Chatbot完成,幾個朋友回饋都覺得比起一些問卷網站,這種方式還蠻新奇的,後續一些辦婚禮的朋友都還來詢問當時 Line 的一些功能是怎麼用的,也想透過這種方式來玩。2年也過去了,Line 的 Chatbot 也改版了不少,故這次想要藉由鐵人賽,再逐步的好好再把 Line 的文件看過一遍,並重新開發,透過這過程也分享一些當時的一些尚未做的想法實踐

先來聊聊一個基本的 Line 對話的流程大概會遇到什麼事情

  1. 使用者發送訊息,向 Line Server 發送一個 Request
  2. Line Server 會知道是哪個 Chatbot 發送的,經過格式處理後會發送到該Chatbot作者所設定的 Webhook
  3. Webhook (自己所開發的Web Api),能接收到 Line Server 所傳的結構化Request,能知道使用者發送了什麼訊息,應該要做什麼相對應的處理
  4. 回傳相對應處理的訊息,告訴 Line Server,我們要回覆什麼
  5. 透過 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的挑戰!