LINE的使用日漸普及,許多管理人員也透過這個通訊程式來溝通,對此本文將透過LINE BOT API所提供的服務來實作一個可發出LINE訊息的程式,為網管系統加上傳送即時LINE訊息的功能。
為簡化說明,這裡將只示範如何接收LINE訊息(Messages)以及寄發LINE訊息。其他如「加入好友」、「封鎖好友」等相關功能的說明,就不在本文討論的範圍內。有興趣的讀者,可自行查閱官方網站的說明。
首先說明LINE訊息(Messages)的資料結構,如表1所示。
表1 LINE訊息的資料結構說明
在了解訊息結構後,接下來說明如何寄發訊息給其他的使用者(以HTTP通訊協定連接)。
如圖3所示,若熟悉HTTP通訊協定的用法,即可利用Telnet連接LINE服務主機後,直接下達HTTP指令也可發送出LINE訊息。
|
▲圖3 下達指令發送LINE訊息。 |
不過,LINE公司其實有提供各種程式語言(如PERL、PHP)的發送LINE訊息API。讓使用者能更方便地發送LINE訊息。
在談論完發送LINE訊息的格式後,接著說明接收LINE訊息的格式。
在註冊資訊頁面上有一欄名稱為CallBack URL的欄位,就是提供給使用者設定處理接收到LINE訊息時的處理程式(在此簡稱為處理程式)。
由於LINE是利用MID來辨別各個LINE的帳號,但從LINE程式所提供的使用者介面中,並無法直接取得相關MID的資訊。因此這裡將利用撰寫解析LINE訊息的迂迴方式來取得MID資訊,並利用此MID來寄送LINE訊息給管理者,LINE訊息格式如圖4所示(為JSON格式)。
|
▲圖4 LINE訊息格式。 |
其中from的欄位值,就是所需的MID值。要特別提醒的是,該LINE接收格式中有兩個from,而實際的MID值為content內的from。
由於LINE對於安全有嚴格的要求,所以它要求處理程式必須位於具有效數位憑證(不接受使用者自行建立的數位憑證)的網站伺服器。
對此,以下將介紹如何透過Let's Encrypt服務來建立一個免費的數位憑證。
安裝Let's Encrypt
Let’s Encrypt是一個由ISRG(Internet Security Research Group)組織所維護管理的數位認證機構,主要目的在於為網站伺服器提供免費的數位憑證。
目前的政策是所簽發的數位證書一次有效期為3個月。如果在註冊的過程中,有填入聯絡的E-mail,在期滿之前,Let’s Encrypt也會貼心地寄發E-mail提醒,可利用手動延期的方式持續使用該數位憑證。
可以使用如下的指令來安裝Let's Encrypt(#為註解):
其中產生相關的數位憑證部分,參數說明如下:
webroot:使用webroot的方式做驗證,不須停止目前運作中的網站伺服器服務,即可建立數憑證。
-w:設定網站根目錄的位置
-d:欲申請憑證的網域名稱
在成功執行指令之後,就會產生如圖5所示的數位憑證。
|
▲圖5 產生數位憑證。 |
在產生完數位憑證後,接下來利用此數位憑證來安裝SSL網站伺服器,這裡將使用PHP來實作處理程式。
在此不多談如何安裝SSL網站伺服器,但要特別提醒的是,PHP的版本最好為5.5之後,並且必須支援openssl組態。如果是使用原始碼編譯方式,必須指定編譯組態(--with-openssl)。