Python Slack SDK:官方出品的 Slack 开发工具包

Python Slack SDK:官方出品的 Slack 开发工具包

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

正文顶部截图

README区域截图

1、这个 SDK 覆盖了哪些 API

Slack 平台分多个 API,每个负责一块功能。这个 SDK 给每个 API 都提供了对应的 Python 包:

  • slack_sdk.web:调用 Web API
  • slack_sdk.webhook:接入 Incoming Webhooks
  • slack_sdk.socket_mode:Socket Mode 长连接
  • slack_sdk.signature:验证 Slack 服务器的请求签名
  • slack_sdk.audit_logs:审计日志 API
  • slack_sdk.scim:用户管理 SCIM API
  • slack_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 的基本交互,适合新手快速上手。

posted @ 2026-06-07 16:32  codinglife66  阅读(8)  评论(0)    收藏  举报