用 cURL 發送訊息到 Slack
Slack 允許你透過 Webhooks 服務發送訊息
為任何一個 channel 建立 webhook 之後,就可以用 curl 發送通知。
$ curl -X POST -H 'Content-type: application/json' --data '{"text": "Something important"}' https://hooks.slack.com/services/YOUR/TOKENIZED/URL
設定 Incoming Webhooks
Incoming webhook 是從應用程式發送訊息到 Slack 的簡單方式。要設定 incoming webhook,你需要建立一個 Slack app,並在 app 設定中啟用 incoming webhooks。以下是設定 incoming webhooks 的逐步指南:
- 登入你的 Slack 帳號,前往 Slack API 主頁面。
- 點擊「Create an app」按鈕,選擇「From scratch」。
- 輸入 app 的名稱,並選擇你要部署的 workspace。
- 點擊「Create App」按鈕。
- 在 app 設定中,前往「Features」區塊並點擊「Incoming Webhooks」。
- 切換開關以啟用 incoming webhooks。
- 點擊「Add New Webhook to Workspace」按鈕。
- 選擇你想發送訊息的 channel,然後點擊「Allow」。
照著這些步驟操作,你就能建立 Slack app 並設定 incoming webhook,開始發送訊息到你選擇的 channel。
建立 Payload
要透過 incoming webhook 發送訊息,你需要建立一個包含訊息文字和一些選項的 payload。建立 payload 的方法如下:
- 決定 payload 的 content type。對 incoming webhooks 來說,content type 一律是「application/json」。
- 建立一個 JSON 物件,包含訊息文字和任何你想加入的額外選項。例如: 1.
{ "text": "Hello, Slack!", "username": "WebhookBot", "icon_emoji": ":ghost:" }
- 使用 curl 之類的工具把 payload 送到 incoming webhook 的 URL。
只要建立格式正確的 JSON payload,就能確保你的訊息透過 incoming webhook 正確送達 Slack。
用 cURL 發送訊息
cURL 是一個命令列工具,可以用來透過 incoming webhook 發送訊息到 Slack。以下是用 cURL 發送訊息的範例:
- 打開終端機,切換到你想發送訊息的目錄
- 建立一個副檔名為 .json、內容為 payload 的檔案。例如,建立一個名為 message.json 的檔案,內容如下: 1.
{ "text": "Hello, World!" }
- 使用 cURL 指令把 payload 送到 incoming webhook 的 URL: 1.
curl -X POST -H 'Content-Type: application/json' --data @message.json https://hooks.slack.com/services/YOUR/TOKENIZED/URL
照著這些步驟操作,你就能用 cURL 透過 incoming webhook 發送訊息到 Slack。
測試與疑難排解
測試和排查 incoming webhooks 的問題時,務必檢查 HTTP 狀態碼和 response body 有沒有錯誤。以下是幾個你可能遇到的常見錯誤:
- HTTP 400 Bad Request:payload 格式錯誤或缺少必要欄位。
- HTTP 403 Forbidden:incoming webhook 的 URL 無效或已不可用。
- HTTP 404 Not Found:channel 或 workspace 不存在。
要排查問題,你可以用 cURL 之類的工具發送測試 payload 並檢查回應。此外,也可以查閱 Slack API 文件,取得更多關於錯誤碼和疑難排解的資訊。
進階 Slack 整合
Incoming webhooks 只是整合 Slack 的其中一種方式。若要做更進階的整合,你可以使用 Slack API 來收發訊息、建立自訂 bot 等等。以下是一些進階的 Slack 整合功能:
- Web API:Slack Web API 讓你可以收發訊息、建立自訂 bot 等等。
- Events API:Slack Events API 讓你可以即時接收訊息、表情符號回應等事件的更新。
- Botkit:Botkit 是一個在 Slack 上打造自訂 bot 的框架。
善用這些進階功能,你就能打造更精緻的 Slack 整合,進而自動化工作流程、提升使用者體驗等等。