Slack 通知功能 純靜態

Slack通知功能 純靜態
Slack通知功能 純靜態

原來 Slack 通知還蠻多人用的

之前跟別的公司開會時,突然對方說了一句:「現在很流行主機發生問題,就發送 Slack 訊息來通知。」

August 聽到後才想到,啊對,也有身邊朋友的公司就是用 Slack 來通知主機或哪裡有問題的,就想說來研究一下,寫個一篇。

純靜態?

那為什麼標題上要加個「純靜態」呢?是因為這篇寫的自動通知,就是單純發送個訊息的,無法跟訊息有互動。

Slack 的通知除了發送純文字外,還可以加上按鈕、選單,那就得要建一個 App,當使用者點了按鈕或是選單,App 就可以判斷選了哪個選項,給下一步的動作,對,就是機器人。

這種可互動的寫在下一篇:Slack 通知功能 可互動

本篇主要寫純通知的功能。


註冊 Slack,跳過

基本上會看這篇,就代表用了 Slack 一段時間了,知道 Slack 要怎麼用。

像 August 這種公司沒在用的,自己東摸摸西摸摸一下,也不小心就註冊了一個 Workspace,建了一個 Channel 來玩自動通知。

所以聰明如你,關於怎麼安裝跟建一個 Workspace、Channel 的部份,這篇就不寫了,咱們繼續看下去。


1 開通自動通知功能

自動通知不是預設就有的功能,要另外裝 App 來使用。

登入進 Slack 後,右側會有一排選單,點選「Apps」展開子選單,接著點「Add App」:

點Apps,點Add App
點 Apps,點 Add App

會出現一個搜尋框,輸入「incoming」,就會看見第一個結果是「Incoming WebHooks」:

搜尋結果出現Incoming WebHooks
搜尋結果出現 Incoming WebHooks

Incoming WebHooks 就是要安裝的 App,點了以後會跳出 Incoming WebHooks 的頁面:

Incoming WebHooks的頁面
Incoming WebHooks 的頁面

接著點「Add to Slack」,會出現一個詢問要裝在哪個 Channel 的選單,選擇好後就,按下「Incoming WebHooks integration」。

選擇裝在哪個channel
選擇裝在哪個 Channel

安裝完後,會進到 Incoming Webhooks 的設定頁面:

incoming webhooks的設定頁面
Incoming Webhooks 的設定頁面

頁面裡第一行「Webhook URL」最重要,我們只要 POST 到這個 URL,就可以發出自動通知的訊息。

Webhook URL 的格式會是這樣:

https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX

我們先存起來,之後發自動通知的部份會用到。

除了提供 URL,這個頁面也有一些基本使用範例,也可以設定自動通知的頭像。都確認完後就可以按下最下面的「Save Settings」。


1-2 忘記了 Webhook URL?

這邊補一段,如果沒存到 Webhook URL 該怎麼辦?

一樣進登入 Slack,接著看向左側的選單,上面會有一個「Apps」的按鈕:

點選左側選單上面的Apps
點選左側選單上面的A pps

接著會出現安裝了什麼 App,會看見我們之前裝的 App:

顯示安裝的App
顯示安裝的 App

顯示的頭像跟名稱會是我們在設定頁那邊設定的,所以不會是這邊的 Demo 圖。

點選 App 後,會出現這個 App 是哪一個功能的,因為我們是安裝 Incoming Webhook,所以會出現的是 Incoming Webhook 的資料:

出現incoming webhook app
出現 Incoming Webhook App

接著點「View in App Directory」,就會開啟網頁,會看到我們的 App:

網頁上可以看到App
網頁上可以看到 App

最後 App 旁邊的鉛筆按鈕,就會回到設定頁面,頁面裡就有 Webhook URL 了。


2 發送訊息

有了 Webhook URL 後,就可以 POST 到這個 URL 來發送訊息。

August 這邊寫了三段,分別是用 fetch API、jQuery 的 POST,以及在 Google Apps Script 上的 POST 方式:

var webhook_url 要替換成你取得的 Webhook URL。

如果訊息上想要折行,就用 \n

試發一下後,會看見收到訊息了:

由app發送的訊息
由 App 發送的訊息

因為自動發送訊息是由 App 發送的,所以名稱右側會出現「App」字樣。顯示的名稱跟頭像就是我們在設定頁上設定的。


3 設定自動發送

自動發送的部份,如果是主機掛了要自動通知,那就是主機的專業領域了,August 不懂主機那塊這邊就不亂寫。

這邊會寫的是定時發送的。

如果主機是用 Google Cloud Platform 的話,可以建一個 cron.yaml 檔案來觸發 POST,請參考這篇:

GCP推播每日天氣預報 建立排程

簡單來說就是新增一個 corn.yaml 檔,然後布署到 GCP 上就行。

如果是用 Google Apps Script 的排程,請參考這篇:

GAS 推播訊息 建立排程

簡單來說就是可以直接用 GAS 的介面來新增,但最小單位是小時,無法控到幾分鐘的部份。


4 除了純文字的訊息,還有多種格式

Slack 自動發送的訊息格式,除了純文字外,也有提供多種格式,還貼心的提供了生成器:

https://api.slack.com/tools/block-kit-builder

一整個好棒棒,但要注意的是,本篇筆記的是純靜態的訊息,所以如果在生成器用了按鈕或選單,收到訊息的人點擊後是不會有任何效果及回應的。

但還是可以用他的生成器建立一些不同於純文字的訊息,像這樣:

不一樣的訊息格式1
不一樣的訊息格式 1

或是這樣:

不一樣的訊息格式2
不一樣的訊息格式 2

可以用生成器玩一下不同的訊息樣式。

Summary
Slack 通知功能 純靜態
Article Name
Slack 通知功能 純靜態
Description
本篇大綱:原來Slack通知還蠻多人用的。純靜態?註冊Slack,跳過。1 開通自動通知功能。1-2 忘記了webhook url?2 發送訊息。3 設定自動發送。4 除了純文字的訊息,還有多種格式。筆記後心得。這篇寫的自動通知,就是單純發送個訊息的,無法跟訊息有互動。
Augustus
Let's Write
Let's Write
https://letswrite.tw/wp-content/uploads/2020/08/logo_512.jpg
訂閱
通知
guest

0 Comments
Inline Feedbacks
看所有留言