Python Slack SDK:官方出品的 Slack 开发工具包
Python Slack SDK:官方出品的 Slack 开发工具包
python-slack-sdk 在 GitHub 上积累了超过 4,000 Star。这是 Slack 官方维护的 Python SDK,用来和 Slack 平台的各类 API 对接。


1、这个 SDK 覆盖了哪些 API
Slack 平台分多个 API,每个负责一块功能。这个 SDK 给每个 API 都提供了对应的 Python 包:
slack_sdk.web:调用 Web APIslack_sdk.webhook:接入 Incoming Webhooksslack_sdk.socket_mode:Socket Mode 长连接slack_sdk.signature:验证 Slack 服务器的请求签名slack_sdk.audit_logs:审计日志 APIslack_sdk.scim:用户管理 SCIM APIslack_sdk.oauth:OAuth 授权流程slack_sdk.models:Block Kit UI 组件构建器slack_sdk.rtm:RTM 实时消息 API
这些包可以独立使用,也可以组合在一起。
2、基础用法:发一条消息
最常用的是 WebClient,用来发送消息:
import os
from slack_sdk import WebClient
from slack_sdk.errors import SlackApiError
client = WebClient(token=os.environ['SLACK_BOT_TOKEN'])
try:
response = client.chat_postMessage(channel='#random', text="Hello world!")
except SlackApiError as e:
print(f"Got an error: {e.response['error']}")
上传文件也很直接,传入文件路径即可:
response = client.files_upload_v2(channel='C0123456789', file='./tmp.txt')
3、异步支持
SDK 提供了 AsyncWebClient,底层依赖 aiohttp。在异步脚本里可以这样写:
import asyncio
from slack_sdk.web.async_client import AsyncWebClient
client = AsyncWebClient(token=os.environ['SLACK_BOT_TOKEN'])
async def post_message():
response = await client.chat_postMessage(channel='#random', text="Hello world!")
asyncio.run(post_message())
如果在 sanic、aiohttp 这类已经托管了事件循环的框架里使用,直接定义 async 函数并加上 await 就行。
4、安装和进阶选项
要求 Python 3.7 及以上版本:
pip install slack_sdk
SDK 还支持自定义 SSL 上下文、代理配置、DNS 加速等选项。安装可选依赖 aiodns 可以提升异步客户端的 DNS 解析速度:
pip install slack_sdk[optional]
5、谁适合用
- 需要给团队开发 Slack 机器人的开发者
- 想在 Slack 里接入第三方服务的工程师
- 需要从 slackclient 迁移到新版 SDK 的用户(slackclient 已进入维护模式,slack_sdk 是其继任者)
官方提供了一个 10 分钟的入门教程,涵盖了 Web API 和 RTM API 的基本交互,适合新手快速上手。

浙公网安备 33010602011771号