1.前言
為了完成使用line去控制電燈及家電的目標,因此我們必需先來學習一下line bot的控制方式,line提供了一個messaging api給開發人員使用,讓其可以接收或回覆訊息給好友。
2. 申請與設定
在整個linebot架構上,使用者用line將訊息發送給line公司的伺服器,line伺服器再透過我們所設定的webhook功能把訊息轉傳到網站伺服器上並做出相對應的動作。
原則上需要執行的步驟如下:
1. 註冊帳號為開發人員並建立Provider與chennel
2. 設定LINE bot的名稱和基本資料
3. 發行channel acess token
4. 建立網站伺服器
5. 將我們的應用程式碼上傳到網站伺服器上。
6. 將LINE bot加入好友& 開始測試
a. 註冊帳號為開發人員並建立Provider與channel
先至https://developers.line.me/en/申請帳號,登入帳號後點選Start using Messaging API
點選加號的圖示後輸入provider的名稱按下add後即可往next page前進囉
建立channel, 在此頁面中可以設定api相關資訊,如名稱、圖像、e-mail…等
其中需注意的一項為在plan選項中各有其限制,因為我們後面希望我們的系統可以主動推播訊息給使用者,因此在這裡我們必需選用Developer Trail,要特別注意,不然到時後push會出問題
最後按下confirm就完成了
b. 設定LINE bot的名稱和基本資料
在建立完channel之後可以在provider底下看到剛建立的porvider與channel,點選該channel Settings就可以把裡面的基本資料進行確認及設定
在Basic information中可以看到我們的channel id及channel secret 及我們等等要用申請的token之後都是要記錄下來給之後我們所撰寫的bot程式使用的
另外在上圖中最後一項可以看到,available features裡面有兩項一個是reply_message另一個為push_mesage,若我們剛剛在plan選的是free的話,就只剩下reply_message可以用囉
c. 發行 channel access token
接著再把網頁往下來可以看到messaging settings, 在channel acess token 後方有一個issue按鈕,按下後會跑出個畫面,直接按下issue就好了,按下後就會出現token了
最後在use webhooks項目改為enable後,這邊的設置大概就告一個段落了,webhook url部分就留待我們完成樹莓派那邊的設定再來進行補充就好。
4. 建立網站伺服器
網站伺服器目前網路上有很多種方法可以做,可以自己建一個或是使用現有的,例如:heroku、ifttt等相關雲端網站都有提供相關服務
而我們希望我們可以把整個流程都跑過一次,因此我們選擇在樹莓派上面直接建立一個網站伺服器。
有關樹莓派系統安裝及啟動相關項目在這裡就不再多做說明(之後再找空閒來寫),主要針對網伺服器要使用的項目進行解說
在架設好樹莓派之後可以使用第三方程式(如teraterm)進行遠端連接上樹莓派
安裝套件前要先更新一下
# sudo apt-get update
接來要安裝git,因為我們要從git上拉程式下來
# sudo apt-get install git
後面我們要使用node.js,所以我們要安裝npm
# sudo apt-get install npm
如果沒有太大的狀況,應該都會成功的跑完,要是沒有,可能就是跟我一樣耍呆沒有接上外網!
接著,可以先把目錄移到要下載程式的目錄底下(我這邊是安裝在/home/pi
再輸入git指令,將程式抓回來~
# git clone https://github.com/tejitak/node-line-bot-api.git
完成後就可以發現目錄多了一個node-line-bot-api資料夾
接著進入node-line-bot-api資料夾後安裝npm
# npm install
然後開始安裝node.js
# sudo apt-get install build-essential libssl-dev
# curl https://raw.githubusercontent.com/creationix/nvm/v0.16.1/install.sh | sh
# source ~/.profile
# nvm install v4.2.6
待系統跑完後可以試著跑看看有沒有成功
# node test_webhook.js
如果成功的話就可以看到
完成後先輸入
# nano -T 4 test_webhook.js
然後把先前申請好的line bot token跟secret填到這裡來然後按下ctrl+x存檔跳出就好囉
之後就是把我們的這台伺服器設定給外網可以連接囉
這部分我們使用ngrok
# wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-arm.zip
之後請記得到ngrok的官網去註冊一下帳號,不然之後在使用時只能使用8個小時
下載完成後解壓縮
# unzip ngrok-stable-linux-arm.zip
解壓完成後把執行檔移到/bin資料夾中
# sudo mv mgrok /bin
接著我們試著開啟port 3000
因此我們輸入
# ngrok http 3000
看到這個就離成功不遠了,在這你可以發現會有一個時間一直在倒數,若要取消時間的話就必需要先到官網上去註冊並取得你的token
再回來執行
# ngrok authtoken xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
之後就不會有時間倒數囉!
最後執行echo程式,讓line bot當個八哥學你說話吧
# node test_webhook.js & //讓程式到背景執行
#ngrok http 3000
再復製 forwarding的網址並回到LINE BUSSINESS設定網址為
最後 就是把bot加入好友並測試囉!!
reference :
http://140.130.19.207/SiangBlog/?p=111
留言列表