如何使用 Python slack_sdk 發送訊息給 Slack

本篇 ShengYu 介紹如何使用 Python 透過 slack_sdk 發送訊息到 Slack,在現代開發環境中,能夠快速與團隊溝通是提升工作效率的關鍵之一。Slack 作為一個廣泛使用的團隊協作工具,提供了強大的 API,可以讓開發者輕鬆地自動化各種操作。本文將介紹如何使用 slack_sdk 這個 Python 套件來發送訊息到 Slack 頻道。

步驟 1:安裝 slack_sdk 套件

如果傾向使用虛擬環境的話,請用以下指令,要離開虛擬環境的話要下 deactivate 指令,

1
2
python -m venv myenv
source myenv/bin/activate

首先,我們需要安裝 slack_sdk 套件。在終端中運行以下命令來安裝它:

1
pip install slack_sdk

這個命令會安裝 slack_sdk 到你的 Python 環境中,使你能夠在 Python 代碼中使用它。

步驟 2:取得 Slack Bot Token

要與 Slack API 互動,你需要一個 Slack Bot Token。按照以下步驟來獲取這個 token:

  1. 登錄到 Slack API 頁面。
  2. 點擊“Create an app”按鈕,選擇“From scratch”。
  3. 為你的應用程式命名,並選擇你要將其添加到的工作區。
  4. 創建應用後,進入“OAuth & Permissions”頁面,並在“Scopes”部分添加 chat:write scope。
  5. 點擊“Install App to Workspace”按鈕,並授權應用程式。
  6. 完成後,你將看到一個 Bot User OAuth Token。複製這個 token,稍後會在代碼中用到。

轉到“OAuth和權限”選項卡,向下滾動到Scopes卡片,在Bot Token Scopes下,點選“Add OAuth Scope”來新增’chat:write’,’chat:write.customize’,’files:read’,’files:write’Scopes(總共需要點選“新增OAuthScopes”四次)。

步驟 3:編寫 Python 代碼發送訊息

有了 slack_sdk 套件和 Bot Token,我們就可以開始編寫代碼來發送訊息。以下是示範代碼,
將 xoxb-your-slack-bot-token 替換為您的 Slack Bot Token,不想寫在code裡也可用 os.environ["SLACK_BOT_TOKEN"] 來取得 SLACK_BOT_TOKEN 環境變數,
之後再呼叫 chat_postMessage 方法發送訊息,
將 channel 替換為您的頻道 ID 或使用者名,將 text 換成你要傳輸的內容,
try except 則是捕獲錯誤並打印,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/usr/bin/env python3
from slack_sdk import WebClient
from slack_sdk.errors import SlackApiError
#import os

# 輸入你的 Slack Bot Token
slack_token = "xoxb-your-slack-bot-token"
#slack_token = os.environ["SLACK_BOT_TOKEN"]

# 建立 Slack 客戶端
client = WebClient(token=slack_token)

try:
# 發送訊息到指定頻道
response = client.chat_postMessage(
channel="#general", # 替換成你的頻道 ID 或名稱
text="Hello, world!"
)
assert response["message"]["text"] == "Hello, world!"
print("訊息發送成功")
#print(response["ok"])
except SlackApiError as e:
print(f"發送訊息失敗: {e.response['error']}")

在這段代碼中,我們首先從 slack_sdk 導入 WebClientSlackApiError。然後使用你的 Bot Token 創建一個 Slack 客戶端,並使用 chat_postMessage 方法發送訊息到指定頻道。如果訊息發送成功,你將看到“訊息發送成功”的提示;否則,會顯示錯誤訊息。

如果想發送可點擊超連結URL的話,像下面這樣,

1
text="<https://shengyu7697.github.io/linux-watch/|Linux watch 指令用法與範例> 參考這篇"

另外簡單介紹其他種類型,粗体、斜体、链接、列表,

1
text="*Bold* _Italic_ `Code` <http://example.com|Link>"

結論

使用 slack_sdk 套件發送訊息到 Slack 是一個簡單且強大的自動化方法。只需按照上述步驟安裝套件、獲取 Bot Token 並編寫代碼,即可輕鬆實現訊息的自動發送。這不僅能夠提升你的工作效率,還能使團隊溝通更加順暢。

另外還有發送圖片、附件檔案、Emoji 的方式,有興趣的話可以留言讓我知道,有機會我另外寫一篇介紹。

以上就是如何使用 Python 發送訊息給 Slack 的介紹,
如果你覺得我的文章寫得不錯、對你有幫助的話記得 Facebook 按讚支持一下!

其他參考
如何使用Python发送Slack消息
使用 Slack API 傳遞訊息至 Slack頻道
為自己寫程式 - 簡單寫個 .NET Slack 訊息發送程式

其它相關文章推薦
Python 新手入門教學懶人包