LINE chatbot 聊天機器人怎麼做?帶你詳細步驟上手 - ALPHA ...

文章推薦指數: 80 %
投票人數:10人

這篇文章詳細實作步驟指南,帶你做出自己的第一個Line聊天機器人。

... Account Manager 提供的操作界面其實也很方便,都可以製作客製化訊息。

Loading...首頁課程內容系列課程JavaScript全端開發課程學期一|程式設計入門學期二|掌握網頁開發學期三|軟體工程師養成全年開課時間表最新消息限時3000元獎金New非本科跨領域學程式最新課程DATA&AI公開課SQL14天入門課學習體驗成效Blog技術主題求職攻略數據入門文章首頁FAQ常見問題關於ALPHACamp加入我們數位職涯推手計畫馬上報名Web技術LINEchatbot聊天機器人怎麼做?帶你詳細步驟上手Posted on 2019-10-24  by    by振銜(本文作者是ALPHACamp全端WebApp開發課程的學生GaryWu,文章轉載自他的部落格)Line是台灣滲透率最高的通訊軟體,月活躍用戶超過2000萬。

很多商家也開發Line聊天機器人,做自動化客服和資訊查詢的功能。

ALPHACamp全端開發的學生GaryWu透過在AC學會的後端開發能力,自己著手研究如何開發出簡單的Linechatbot。

這篇文章有詳細實作步驟指南,帶你做出自己的第一個Line聊天機器人。

為什麼要做chatbot?上個月去聽LINEchatbot的講座,聽完後,想試試看chatbot到底可以做到什麼程度,雖然是機械式的聊天,但應該可以達到某種效果!也許可以幫助我解決我現在遇到的一些問題。

開始吧因為是LINE提供的服務,所以需要先到LINEDevelpers登入及註冊。

先到https://developers.line.biz/en/登入登入後,註冊,填寫Name、Email,並發送信箱認證信信箱認證完成=>選擇要使用的服務:MessagingAPICreatenewchannelSelectprovider:可以勾選已經存在的provider,若沒有則新增一個provider。

好了,就按〈NextPage〉輸入providername完成相關資料輸入=>Appicon、Appname、Description、Category、Subcategory、Emailaddress、PrivacyPolicyURL、TermsOfUseURLConfirm:確認輸入資料正確性channel建立成功更改channelsettingChannelID及ChannelSecret很重要,不要外洩!這邊不用填=>最下面那個選項Channelaccesstoken,點選Issue可以產生Channelaccesstoken設定Timeuntiltoken有效時間點選Issue,產生token,這串token可用於專案中。

需要用到時再來查詢也可以。

Messagingsettings:Usewebhooks切換成EnabledWebhookURL:先留空白,等建立WebhookURL後,再回頭設定這邊不用設定,最下面有chatbot的QRcode,用於加入好友。

點選Setmessage會連到LINEofficialAccountManager,有下面幾個畫面:主頁可以設定:群發訊息、貼文串、加入好友的觀迎訊息、自動訊息……到此,已完成Channel的基本設定。

接下來,要建立WebhookURL建立WebhookURL建立專案資料夾mkdirXXXXXX建立package.jsonnpminit-y安裝套件express、linebotnpminstallexpresslinebotdotenvlinebot套件說明:https://www.npmjs.com/package/linebot安裝後,package.jsondependencies多了二個套件express、linebot、dotenv建立app.jsconstexpress=require('express')constapp=express()constlinebot=require('linebot');//判別開發環境if(process.env.NODE_ENV!=='production'){   //如果不是production模式 require('dotenv').config()           //使用dotenv讀取.env檔案}constbot=linebot({ channelId:process.env.CHANNEL_ID, channelSecret:process.env.CHANNEL_SECRET, channelAccessToken:process.env.CHANNEL_ACCESS_TOKEN});constlinebotParser=bot.parser();bot.on('message',function(event){ console.log(event);event.reply(event.message.text).then(function(data){  //success }).catch(function(error){  //error });});app.post('/',linebotParser);app.listen(process.env.PORT||3000,()=>{ console.log('Expressserverstart')});佈署到heroku在專案資料夾新增名稱為Procfile的檔案web:nodeapp.js如果電腦有安裝herokuCLI,則可以於專案資料夾路徑執行下面指令:herokulogin會與連結到heroku網站,點選login再回到CLI,已登入heroku建立一個herokuappherokucreate成功建立,左邊是app網址,右邊是gitpush位址可用gitremote-v指令來查詢將專案pushherokumastergitpushherokumasterpush後,會偵測哪一種語言撰寫的app、建置runtimeenvironment、Installingbinaries、Installingdependencies(相關套件)Discoverprocesstype(因為我們在專案中有建立Procfile,讀取到web)、Compressing、Lauching、發行版次查看herokulogsherokulogs--tail這裡出現二次同樣的錯誤訊息:使用npmstart來啟動卻失敗原因是,我們在package.json沒有在scripts中定義start。

所以我們來更改package.json設定:在scripts中增加二個屬性dev及start。

開發時可以npmrundev來啟動server,佈署時至heroku後,heroku會以npmrunstart來啟動server。

"scripts":{  "dev":"nodemonapp.js",  "start":"nodeapp.js",  "test":"echo\"Error:notestspecified\"&&exit1" },再gitpushherokumaster然後查詢logs補充:有另一個查看herokulogs的方式至heroku該app,右上角點選ViewlogsViewlogs的下方有Viewwebhooks的選項,有空再來了解。

官方Webhooks的介紹:https://devcenter.heroku.com/articles/app-webhooks到此我們已佈署至heroku,但這樣還不夠。

需要設定heroku的環境變數,server啟動後,需要以下三個參數,server才能與LINE對接。

使用herokuconfig:set指令,設定CHANNEL_ID、CHANNEL_SECRET、CHANNEL_ACCESS_TOKEN三個參數herokuconfig:setCHANNEL_ID=2354872938CHANNEL_SECRET=981374asf9817398asdfCHANNEL_ACCESS_TOKEN=q3985sdlkfgjdklfgj;aiu34qulqwjrkbsdf/awf/rkqu435ruas;dfklj/dskfb/dal.f/.,mvoq8rukaegp9q8971982354r;lkhj/sdfgkva;sifu;wef最後可用herokuconfig指令來查詢設定的環境變數這時候,打開app網頁herokuopen會出現像這樣的畫面回到LINEdeveloper,將webhookURL填入將WebhookURL輸入後,點Update,verify後若出現Success訊息就代表成功了!在LINEOfficialAccountManager也可以設定webhookURL接著,試著加入好友:掃描QRcode或用ID加入好友加入好友,試著傳個訊息chatbot都在repeat我傳的訊息,notok!修改一下回傳訊息app.js:修改中間bot.on裡面的判斷式=>...bot.on('message',function(event){ console.log(event); switch(event.message.text){  case'你':   event.reply('我快餓昏了,拜託你!')   break  case'hi':   event.reply('我等你等好久了,給我東西吃!')   break  case'hello':   event.reply('我沒心情跟你說hello,我需要食物!')   break  case'天氣':   event.reply('別管天氣了,我餓到快沒力氣了!')   break  case'聽說':   event.reply('聽說什麼,你沒聽到我說我肚子好餓嗎?')   break  case'問':   event.reply('問什麼不重要,重要是我肚子好餓,給我東西吃!')   break  case'說':   event.reply('說什麼說,不要再說了,等吃飽再說吧!')   break  case'名字':   event.reply('我叫小雞,你是我的主人,你不知道嗎?')   break  case'媽媽':   event.reply('你就是我媽,我受不了!')   break  default:   event.reply('不要再說了,我肚子好餓,趕快餵我!') }});app.post('/',linebotParser);...然後換一下圖片(基本檔案圖片)=>預覽一下=>試著傳送訊息=>實作success!結語因為有架設Expressserver的基礎,所以學起來很快。

LINEOfficialAccountManager提供的操作界面其實也很方便,都可以製作客製化訊息。

但不確定能有多大彈性。

如果我想要發送狗圖或貓圖網址給使用者,或依使用者提供的關鍵字傳送天氣預報給使用者,可能還是得靠server來完成。

掌握Express基礎,習得打造兼具前後端WebApp的能力振銜我是三個孩子的爸,從事醫療業十多年。

幾年前,學會運用excel的公式解決一些工作的難題,然後又接觸e化教學平台的運作、連結資料庫抓資料、簡單網頁製作,發現自己樂在其中,而在實做過程,對寫程式的興趣也跟著提升。

自今年初,開始思考轉職的可能,希望藉由此課程,不但提升撰寫程式的能力及運用寫程式解決問題的能力,也可以提升轉職的成功率。

SeeAllPost專案實作Search熱門搜尋自學程式學習方法學習教練助教跨領域職涯軟體工程師前端全端AllCategoriesAC動態AC評價Web技術人物專訪程式學習自學能力資料科學軟體職涯FollowUs延伸閱讀更多好文章推薦給你!Web技術CSS教學:認識語法規則與基本功Web技術演算法(Algorithm)是什麼?演算法應用的例子與場景Web技術助教開講活動回顧:網頁開發必學技巧不藏私公開Web技術LeetCode解題的思考策略,刷題的4個階段Web技術什麼是Scrum?認識Scrum的做法與它的限制Web技術CSS學習與實作經驗分享,如何建立扎實基本功Web技術為什麼要用Docker?如何用Docker構築不同MongoDB架構?Web技術API開發、測試、除錯一次到位!使用MSW快速上手MockAPIALPHACamp的使命是「幫助人們發展有意義、有價值的職涯」。

自2014年以來,我們以新加坡和台灣為教學據點,培訓超過6500名學員。

校友遍及台灣、新加坡、中國、以及全球的科技新創。

JavaScript全端開發課程三學期系統化課程設計學期一:程式設計入門學期二:掌握網頁開發學期三:軟體工程師養成最新課程New數位職涯RPGDATA&AI公開課SQL14天入門課LearnMore非本科跨領域學程式理工科職涯升值挑戰學習體驗成效Blog技術主題職涯攻略常見問題關於ALPHACamp加入我們ContactUsEmail:[email protected]電話:+886-2-2546-9766(※防疫期間AC採遠距上班,如需聯繫請來信或FB私訊)地址:105台北市復興北路201號6樓之4獲取最新資訊業界經驗分享、職涯諮詢、學習技能提升!訂閱電子報ALPHACamp|創新職涯的線上學校©2022AllRightsReserved



請為這篇文章評分?