用 drone-line 架設 Line webhook 及發送訊息

之前寫了一篇教學『用 Docker 發送 Line 訊息』,但是前提是你要先學會 Docker,對於完全沒有 Docker 經驗的初學者來說,學習起來相當不容易,所以我將 drone-line 編譯出 Linux, Mac OS X 或 Windows 都可以執行的 Binary 檔案,方便初學者可以直接下載執行檔,在任何環境都可以運作,請直接參考 v1.4.0 Release 頁面,如果還是想用 Docker 版本的,可以直接參考 Docker Hub 上的 drone-line repo,底下會教大家如何執行 Line webhook service 及發送訊息,尚未申請 Line Developer 帳號,請直接參考前一篇教學

使用執行檔

不用學習 Docker 只需要下載執行檔就可以,支援底下環境

  • Windows adm64/386
  • Linux amd64/386
  • Darwin (Mac OS X) amd64/386

下載 drone-line 執行檔

不管是 Windows 64/32 位元的作業系統,都可以直接在 drone-line release 頁面 找到相對應的下載點。下載後,直接在 Windows 執行 cmd 指令,跳出命令提示列視窗,鍵入:

1
$ drone-line-v1.4.0-windows-amd64.exe -h

看到底下畫面就代表成功了

Screen Shot 2016-12-17 at 11.58.28 PM

架設 Webhook Service

透過 Webhook Service 才可以跟 Line Server 互相溝通,拿到使用者專屬 ID,請直接底下指令就可以架設 Webhook service。

1
2
3
4
$ drone-line-v1.4.0-windows-amd64.exe \
  --secret xxxx \
  --token xxxx \
  webhook

其中 --secret--token 請自行替換,預設會跑在 8088 port,如果要換連接埠,請使用 --port 參數

1
2
3
4
5
$ drone-line-v1.4.0-windows-amd64.exe \
  --port 2001 \
  --secret xxxx \
  --token xxxx \
  webhook

傳送訊息

拿到使用者 ID 就可以透過指令直接發送訊息

1
2
3
4
5
$ drone-line-v1.4.0-windows-amd64.exe \
  --secret xxxx \
  --token xxxx \
  --to xxxx \
  --message "Test Message"

其中 --to 是代表使用者 ID,如果要傳給多個人,請用 , 符號隔開。

使用 Docker

還是可以用 Docker 完成跟執行檔相同的結果,本篇是透過 appleboy/drone-line 映像檔來完成

架設 Webhook Service

一行指令完成 webhook service 架設

1
2
3
4
docker run --rm \
  -e PLUGIN_CHANNEL_SECRET=xxxxxxx \
  -e PLUGIN_CHANNEL_TOKEN=xxxxxxx \
  appleboy/drone-line webhook

如果要換預設連接埠 (8088) 請加上 PLUGIN_PORT 全域變數

1
2
3
4
5
docker run --rm \
  -e PLUGIN_CHANNEL_SECRET=xxxxxxx \
  -e PLUGIN_CHANNEL_TOKEN=xxxxxxx \
  -e PLUGIN_PORT=2001 \
  appleboy/drone-line webhook

傳送訊息

一樣很簡單,一行指令搞定

1
2
3
4
5
6
docker run --rm \
  -e PLUGIN_CHANNEL_SECRET=xxxxxxx \
  -e PLUGIN_CHANNEL_TOKEN=xxxxxxx \
  -e PLUGIN_TO=xxxxxxx \
  -e PLUGIN_MESSAGE=test \
  appleboy/drone-line

後記

上個月在線上 docker 讀書會,有教大家如何用 Docker 發送 Line 訊息,影片檔如下,不過本篇主要是提供了各 OS 版本的 Binary 檔案,方便大家直接下載使用,連 Docker 都不用安裝了。

對於執行檔或 Docker 有其他問題,可以直接到 drone-lineIssue 給我吧。如果喜歡的話,也可以直接 Star 追蹤。


See also