3.linebot的架構(gòu)
a.LINE Official Account Managerb.LINE Developers
.調(diào)整設(shè)定.記住資訊
c.伺服器
.比較表
d.你的BOT(你的專案的程式碼)
3.linebot的架構(gòu)
上一篇所提到的LINE Official Account Manager就只是在設(shè)定聊天室的基礎(chǔ)功能,
如果要加上程式碼來(lái)控制,還要先做一些前置作業(yè)。
首先,請(qǐng)打開(kāi)LINE Decelopers。
請(qǐng)點(diǎn)右上角的登入。
語(yǔ)言的部分只有英文與日文,我覺(jué)得日文比英文好讀,我就選日文了
反正就算翻譯網(wǎng)頁(yè),也都是一些讓人看不懂的奇葩翻譯跟大陸用語(yǔ)
如果真的有需要,還不如去查英文單字的意思,然後記住它還可以增加自己的單字量
一顆石頭兩隻鳥(niǎo)啊
登入之後,點(diǎn)選自己的頭像,跳到另一個(gè)跟LINE Official Account Manager相似的頁(yè)面
這時(shí)候,左邊的帳號(hào)列表應(yīng)該還是空空如也
這是因?yàn)槲覀儎?chuàng)建的官方帳號(hào)還沒(méi)有啟用MessagingAPI的關(guān)係
回到LINE Official Account Manager,按右上角的「設(shè)定」。
將「回應(yīng)設(shè)定」>「回應(yīng)模式」設(shè)定為
聊天機(jī)器人可使用自動(dòng)回應(yīng)訊息及Webhook功能。
將Messaging>
服務(wù)提供者其實(shí)也沒(méi)有硬性規(guī)定要寫(xiě)誰(shuí)或哪家公司,隨便取名就好
接著你就會(huì)獲得Channel ID跟Channel secret的資訊
再回到LINE Decelopers,就可以看到列表上有剛剛設(shè)定的帳號(hào)了
點(diǎn)進(jìn)去你的帳號(hào)。
接下來(lái),我們只會(huì)用到第二頁(yè)的MessagingAPI設(shè)定
點(diǎn)開(kāi)設(shè)定後,你會(huì)看到QRCODE=加入此帳號(hào)的QRCODE
可以利用的API:回復(fù)訊息(REPLY)與發(fā)送訊息給特定對(duì)象(PUSH)
webhook設(shè)定:可以讓使用者訊息通往你設(shè)計(jì)的的機(jī)器人
以及最底下的Channel access token
如果你也有看過(guò)其他的教學(xué),那你應(yīng)該也知道
Channel secret、Channel access token
這兩個(gè)資訊是要記下來(lái)的吧
token的部分只要按Issue(發(fā)行)就會(huì)產(chǎn)生
什麼是TOKEN呢?
TOKEN直譯的話就是令牌,在這裡是指用程式碼來(lái)操作這隻官方帳號(hào)時(shí)所需要的一串超長(zhǎng)隨機(jī)碼。
雖說(shuō)它的長(zhǎng)度上真的蠻不容易被破解的,不過(guò)一旦被人知道了,任何人都能利用這串隨機(jī)碼對(duì)你的使用者發(fā)送一些亂七八糟的訊息。
如果真的發(fā)生了這種事,請(qǐng)按Reissue重新發(fā)行令牌,並檢視官方帳號(hào)的權(quán)限,搞不好就是共同管理者中出了叛徒。
secret?那不重要,至少這篇教學(xué)用不到。
伺服器
這跟上面的webhook設(shè)定有著緊密的關(guān)係
你的BOT程式碼必須在網(wǎng)路上發(fā)布,而且要是https的網(wǎng)址才能跟LINE@鉤在一起
在這邊我會(huì)介紹兩種比較簡(jiǎn)單的方式,分別是ngrok與heroku。
ngrok:把自己的電腦作為主機(jī)運(yùn)行程式碼,透過(guò)ngrok工具發(fā)佈到網(wǎng)路上,可在2小時(shí)內(nèi)使用https的網(wǎng)址。官網(wǎng)下載點(diǎn):https://ngrok.com/download,下載後直接解壓縮就能得到exe檔。使用方式的部分後面會(huì)講到,先下載來(lái)放著就好。
heroku:他是一個(gè)網(wǎng)路上的平臺(tái)服務(wù),可以讓你把程式碼放在上面運(yùn)作,跟一般的伺服器比起來(lái),由於是免費(fèi)的服務(wù),所以加上了一些限制,最主要就是「休眠」。如果半小時(shí)不去碰他,程式碼就會(huì)進(jìn)入休眠模式,下次呼叫的時(shí)候就要等待大約20秒左右才會(huì)回應(yīng)。
不過(guò)...他是「免費(fèi)」的。許す。
網(wǎng)路上有很多註冊(cè)heroku的教學(xué),過(guò)程不外乎就是信箱驗(yàn)證碼之類的,我就不在這邊多說(shuō)ㄌ。
當(dāng)你將程式碼上傳到heroku上/使用ngrok後,就相當(dāng)於在網(wǎng)際網(wǎng)路上擁有一個(gè)網(wǎng)址,而LINE@MessagingAPI可以透過(guò)這個(gè)網(wǎng)址(webhook)來(lái)傳送使用者的訊息給你的程式碼,當(dāng)程式碼分析內(nèi)容後,再回覆一個(gè)適當(dāng)?shù)挠嵪⒔o使用者。