Install
openclaw skills install @thcjp/slack-api-toolkit-freeopenclaw skills install @thcjp/slack-api-toolkit-freeSlack API工具箱(免费版)通过托管OAuth机制帮助Agent安全调用Slack API。传统Slack集成需要手动创建App、配置OAuth scopes、管理Token刷新,本工具通过托管层自动处理OAuth,开发者只需建立连接即可调用API,Token由托管层注入。
本免费版聚焦"消息收发"与"频道管理"两类高频核心能力,提供CLI与Python双调用示例,适合个人开发者快速构建Slack自动化与通知机器人。
| 能力 | 说明 | 免费版支持 |
|---|---|---|
| 托管OAuth连接 | 自动管理Token,无需手动刷新 | 是 |
| 发送消息 | 文本与Block Kit消息 | 是 |
| 消息回复与更新 | 线程回复、消息更新与删除 | 是 |
| 频道列表与信息 | 列出频道、查看频道详情 | 是 |
| 用户信息查询 | 列出用户、查看用户详情 | 是 |
| 文件管理 | 上传、下载、删除文件 | 否 |
| 搜索 | 搜索消息与文件 | 否 |
| 反应与书签 | 表情反应、书签、置顶 | 否 |
| 批量操作 | 批量发消息、批量管理频道 | 否 |
| 审计日志 | 操作全程留痕 | 否 |
用input_params参数进行配置。
输入: 用户提供核心功能执行所需的指令和必要参数。 处理: 解析核心功能执行的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回核心功能执行的响应数据,包含状态码、结果和日志。
input_params参数,支持创建/查询/导出操作用config_options参数进行配置。
输入: 用户提供参数配置与调用所需的指令和必要参数。 处理: 解析参数配置与调用的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回参数配置与调用的响应数据,包含状态码、结果和日志。
config_options参数,支持修改/重置/导入操作用output_format参数进行配置。
输入: 用户提供结果处理与输出所需的指令和必要参数。 处理: 解析结果处理与输出的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回结果处理与输出的响应数据,包含状态码、结果和日志。
output_format参数,支持导出/保存/转换操作
能力覆盖范围:本skill的核心能力覆盖以下场景关键词:通过托管、安全调用、Slack、API、支持消息收发与频、道管理、适合个人快速集成、工具箱、机制安全调用、免去手动管理、的繁琐、道管理核心能力、核心能力、连接管理、消息发送与回复、频道列表与信息查、CLI、Python、调用示例、Use、when、接口对接、Webhook、系统连接时使用、不适用于逆向工程等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持。小陈是一名独立开发者,希望每天早晨在Slack频道发送项目状态报告。他使用本工具:建立Slack连接,编写定时脚本调用消息发送API,无需手动管理Token,报告自动推送到指定频道。
运维团队需要一个机器人将告警信息推送到Slack。使用本工具:建立连接,在告警系统中调用消息发送API,告警自动以Block Kit格式推送到运维频道,支持线程回复进行告警讨论。
产品经理想评估"将CI构建结果通知到Slack"的可行性。使用本工具快速建立连接并发送测试消息,验证集成可行后即可投入开发,无需先创建Slack App。
# NPM
npm install -g @slack-gateway/cli
# ...
# 或 Homebrew
brew install slack-gateway/cli/sgw
sgw login # 浏览器登录
sgw login --interactive # 直接粘贴API Key
sgw whoami # 查看当前登录状态
或在控制台设置API Key为环境变量:
export SGW_API_KEY="your_api_key_here"
sgw connection create slack
返回的url在浏览器中打开,完成Slack OAuth授权。
sgw slack message send --channel C0123456789 --text 'Hello from Slack Gateway!'
# 基础文本消息
sgw slack message send --channel C0123456789 --text 'Hello team'
# ...
# Block Kit 消息
sgw slack message send --channel C0123456789 \
--blocks '[{"type":"section","text":{"type":"mrkdwn","text":"*加粗* 与 _斜体_"}}]'
# ...
# 线程回复
sgw slack message reply --channel C0123456789 --thread-ts 1234567890.123456 --text '回复内容'
# ...
# 更新消息
sgw slack message update --channel C0123456789 --ts 1234567890.123456 --text '更新后内容'
# ...
# 删除消息
sgw slack message delete --channel C0123456789 --ts 1234567890.123456
import os
import requests
# ...
api_key = os.environ['SGW_API_KEY']
base_url = 'https://api.slack-gateway.com'
# ...
resp = requests.post(
f'{base_url}/slack/api/chat.postMessage',
headers={
'Authorization': f'Bearer {api_key}',
'Content-Type': 'application/json'
},
json={'channel': 'C0123456789', 'text': 'Hello from Python!'}
)
print(resp.json())
# 列出频道
sgw slack channel list --types public_channel,private_channel --limit 100
# ...
# 查看频道信息
sgw slack channel view C0123456789
# ...
# 查看频道消息历史
sgw slack message list --channel C0123456789 --limit 50
# ...
# 列出用户
sgw slack user list --limit 100
# ...
# 按邮箱查找用户
sgw slack user lookup --email alice@example.com
sgw slack message send --channel C0123456789 --text 'Hello!' --connection conn_xyz
--connection,避免发错工作区A:尚未建立Slack连接。运行sgw connection create slack并在浏览器完成OAuth授权。
A:检查SGW_API_KEY环境变量是否正确设置。运行sgw whoami确认登录状态,或重新sgw login。
A:已触发速率限制(每账户10请求/秒)。降低请求频率,批量场景考虑升级专业版使用批量接口。
A:当前连接的OAuth scopes不足。在控制台为该连接申请额外权限范围,或重新创建连接时勾选所需权限。
A:使用Block Kit格式。mrkdwn类型支持Slack风格markdown(*加粗*、_斜体_),比纯文本表现力更强。
本免费体验版限制以下高级功能:
解锁全部功能请使用专业版:slack-api-toolkit-pro
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| Slack网关账户 | 在线服务 | 必需 | 在网关控制台注册 |
| Slack工作区 | 在线服务 | 必需 | 在Slack创建或加入 |
| Node.js | 运行时 | 可选 | CLI安装需要 |
| LLM API | API | 必需 | 由Agent平台内置LLM提供 |
SGW_API_KEY或通过sgw login保存| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |
{
"success": true,
"data": {
"result": "Slack API工具箱处理结果",
"execution_time": "0.5s",
"metadata": {
"version": "1.0",
"processor": "slack apikit"
}
},
"execution_log": ["解析输入参数", "执行核心处理", "格式化输出结果"],
"error": null
}