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

 

arrow
arrow

    Mr Sitdownplz 發表在 痞客邦 留言(0) 人氣()