Slack通知功能 純靜態

Slack通知功能 純靜態

原來Slack通知還蠻多人用的

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

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

純靜態?

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

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

放個廣告賺點養主機的$$,謝謝

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

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


註冊Slack,跳過

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

像Augustus這種公司沒在用的,自己東摸摸西摸摸一下,也不小心就註冊了一個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
點選左側選單上面的Apps

接著會出現安裝了什麼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來發送訊息。

Augustus這邊寫了三段,分別是用fetch API、jQuery的post,以及在google apps script上的post方式:

var webhook_url要替換成你取得的webhook url。

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

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

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

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


3 設定自動發送

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

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

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

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

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

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

GAS推播訊息 建立排程

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


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

Slack自動發送的訊息格式,除了純文字外,也有提供多種格式,更厲害的是,不像line推播得自己手寫程式碼,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
Publisher Logo

留言