iT邦幫忙

2022 iThome 鐵人賽

DAY 28
0
Modern Web

Have fun! 新手也能打造的Javascript微型專案系列 第 28

Have fun! 新手也能打造的Javascript微型專案! Day28: 總是在回答相同的問題嗎?那就做個Line bot替你自動回覆吧!(上)

  • 分享至 

  • xImage
  •  
tags: ItIron2022 Javascript

前言

在台灣現在已經越來越多店家或是公司導入line bot的服務,不但可以提供一些智能化的協助,也會主動提供一些資訊給第一次使用的使用者,讓許多服務都不需要再透過人工處理,對雙方都是很棒的功能!我們今天就來做一個最基本、有著自動回覆功能的line bot吧!

事前準備

為了順利完成今天的示範,請你預先準備好以下的東西

  1. 一個Line帳號
  2. 一個Railway帳號(可參考昨天的文章)
  3. 對express.js最最基本的了解
  4. 一些你想公開的資訊(個人簡介、作品集或履歷等)

Getting started

Step1: 登入Line開發者帳號

首先你需要到Line提供的開發者平台登入自己的帳號,登入完成後點選console按鈕就會進入到目前你專案的dashboard

在左側可以看到你目前參與的專案以及對應的角色權限

Step2: 建立Provider & Channel

接著請你點選下方的Create按鈕建立一個新的Provider,若你之前並沒有做過任何line專案,在中間的區塊也可以直接選取你想建立的Provider內容,Provider你可以將它想成一個獨立的專案,你可以在後續的設置過程中決定你要使用哪一些line的api!

按下create之後首先會需要輸入你這個provider的名稱,唯一需要注意的是取得名稱不能含有"Line"這個字串,照圖片中這樣的名稱會過不了

接著會進入到專案面板,這邊我們需要選取我們這個專案要建立的Channel,也就是要應用哪些line提供的服務,在這邊請你選擇Messaging API服務

這邊你會需要填入一些基本資訊,分類的部分暫時隨便選沒關係!

順利建立之後你就會到Channel的設定畫面中,這邊會包含著許多我們等等要用到的資訊!

這邊要請你取得以下的資訊

在Basic Settings的頁面取得

  1. Channel ID
  2. Channel secret

在Messaging API的頁面取得

  1. Channel access token

accessToken的部分一開始會是空白,你需要點選下方的issue按鈕自己新增一個

目前的階段我們在line開發者頁面需要做的事情就這些了,之後我們還需要再回來一趟,不過暫時這樣就可以了!

Step3: 建立本地專案結構

我們這次的專案結構非常單純,完全就是我們之前做過的東西,請你按照以下步驟建立整個專案結構

  1. 透過npm init -y 建立專案初始結構
  2. 建立.gitignore檔案並寫入以下的內容
/node_modules
  1. 透過git init指令在本地建立git
  2. 透過npm i express linebot安裝所需要的套件
  3. 建立index.js檔案

到這邊你的專案結構應該要是這個樣子

Step4: 將本地專案推上遠端

最後我們需要將這個只有空殼的專案先推上github,請你先在github上建立一個repo(或是你要從本地直接匯入專案也行~!)

接著照著以下的指令將你的專案推送到遠端repo,別忘了替換掉git檔案的位置,別推到示範的專案上

git add .
git commit -m "first commit"
git branch -M main
git remote add origin git@github.com:windate3411/ItIron2022-line-bot-demo.git
git push -u origin main

總結

今天暫時先到這邊就可以了,明天我們將會完成基本的js邏輯並透過railway部署我們的專案,這個機器人目的是類似自我介紹的功能,你可以在今天完成專案設置後開始準備一些你想公開的資訊,明天我們會將這些東西放在機器人的回覆模板中,這麼一來就是一個有趣的自我介紹囉!

轉職Q & A

Danny,我覺得我目前公司的環境不是很健康,雖然我很想去試試外面的機會,但我主管又對我非常好,總覺得離開會很對不起他,我該怎麼做比較好?

老話一句,這種問題我並不會給直接的答案,但我會提供我自己思考的方向。我認為不管在什麼情況下,人情永遠是你最不該考慮的點,是人都會想追求更適合自己的環境,這並不存在什麼對錯,職場上來來去去這一點極端的正常,只要事前有通知、不要讓自己後續的工作沒人接上,念在舊情這種事情我覺得是不太明智的。 若你主管真的是為你好,那麼對你追求更好的機會應當是祝福才對,同樣的道理也適用在同事身上,當你有同事要為了更好的機會離開了,你要做的也只是祝福而非人情綁架,己所不欲勿施於人就是個很好的總結!

當然,我並不是建議你一有問題就直接離職,這種事情自然需要大量的溝通協調再做決定,我想表達的只是若你真的要走,人情之類的概念不應該是影響你決策的因素,這並不是什麼忘恩負義之類的狗屁,往更好的地方去單純就是理所應當的事情。

本文章同步發布於個人部落格,有興趣的朋友也可以來逛逛~!


上一篇
Have fun! 新手也能打造的Javascript微型專案! Day27: 想要與朋友分享你的專案嗎? 一起來透過Railway部署你的作品吧!(Heroku alternative)
下一篇
Have fun! 新手也能打造的Javascript微型專案! Day29: 總是在回答相同的問題嗎?那就做個Line bot替你自動回覆吧!(下)
系列文
Have fun! 新手也能打造的Javascript微型專案30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
jk9746987
iT邦新手 5 級 ‧ 2023-02-20 21:12:52

請問我原本測試成功了能自動回覆信息
但現在突然失敗
webhook url用verify驗證一直出現以下信息
Confirm that your bot server returns status code 200 in response to the HTTP POST request sent from the LINE Platform. For more information, see Response in the Messaging API Reference.
請問有方法解嗎?

jk9746987 雖然我沒有實際看到錯誤訊息,不過根據你提供的資訊我大致可以猜到可能的原因,我猜想是你Railway這個月的免費額度到了(我沒記錯的話是20天或是達到5美元),所以當line bot api去打你放在Railway的server時就會回傳Server Error,最終造成line bot失去回應。
這是我當時在寫文章的缺失,我應該要選其他平台去做部署的,造成你困擾真是不好意思,你可以試著將專案部署在其他的平台(例如Render)並修改line bot的設定,我想應該就可以正常運作了!

jk9746987 iT邦新手 5 級 ‧ 2023-02-20 21:43:01 檢舉

不好意思 我發現是我的問題
我的環境變數serect的er打反了..
感謝您的回覆
目前功能正常
正在查詢如何在群組內當有人加入群組時回覆信息XD

我要留言

立即登入留言