关于 slack-messaging
slack-messaging 是通过 slackcli 在命令行读写 Slack 消息的技能,使用浏览器会话令牌认证,无需创建 Slack 应用。它支持多个工作区,并可按频道 ID 自动路由消息。
主要功能
- 01列出频道、私信及其 ID
- 02发送频道或私信消息
- 03在消息线程中回复
- 04读取频道和线程消息
- 05管理多个工作区认证
适用场景
- 01从命令行向 Slack 频道发送消息
- 02读取频道消息并以 JSON 处理
- 03回复已有消息线程
- 04验证集成是否成功发帖
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ obra/ superpowers-lab --skill slack-messaging安装后在 Claude Code 中输入/slack-messaging确认已加载。
附带文件scripts/extract-tokens
详细介绍
通过 slackcli 发送 Slack 消息
使用 slackcli(shaharia-lab/slackcli)通过命令行发送和读取 Slack 消息。
安装
下载二进制文件:
curl -sL -o /usr/local/bin/slackcli \
"https://github.com/shaharia-lab/slackcli/releases/download/v0.1.1/slackcli-linux"
chmod +x /usr/local/bin/slackcli
macOS(Intel):将 slackcli-linux 替换为 slackcli-macos
macOS(Apple Silicon):替换为 slackcli-macos-arm64
身份验证
slackcli 使用浏览器会话令牌(xoxc + xoxd),无需创建 Slack 应用。
交互式设置
./scripts/extract-tokens <workspace-url>
此流程将引导用户从浏览器 DevTools 中提取令牌。
手动设置
slackcli auth login-browser \
--xoxd="xoxd-..." \
--xoxc="xoxc-..." \
--workspace-url=https://your-workspace.slack.com
验证身份验证
slackcli auth list
查找频道
使用 slackcli conversations list 查找频道及其 ID:
# List all channels
slackcli conversations list
# Filter output
slackcli conversations list | grep -i "channel-name"
发送消息
# Send to a channel (use channel ID from conversations list)
slackcli messages send --recipient-id=C0XXXXXXXX --message="Hello from CLI"
# Send to a DM (use user's DM channel ID)
slackcli messages send --recipient-id=D0XXXXXXXX --message="Hey"
# Reply in a thread
slackcli messages send --recipient-id=C0XXXXXXXX --message="Thread reply" --thread-ts=1769756026.624319
--recipient-id 始终是频道 ID(C...)或私信频道 ID(D...)。
读取消息
# Read last N messages from a channel
slackcli conversations read C0XXXXXXXX --limit=10
# Read as JSON (for parsing)
slackcli conversations read C0XXXXXXXX --limit=10 --json
# Read a thread
slackcli conversations read C0XXXXXXXX --thread-ts=1769756026.624319
列出频道
slackcli conversations list
返回所有公开频道、私密频道和私信及其 ID。
测试 Slack 集成
验证机器人或集成是否正确发送了消息:
# Read the channel, check for the expected message
slackcli conversations read CHANNEL_ID --limit=5 --json | jq '.messages[] | select(.text | contains("expected text"))'
发送测试消息并验证往返是否成功:
# Send
slackcli messages send --recipient-id=CHANNEL_ID --message="integration test $(date +%s)"
# Read back
slackcli conversations read CHANNEL_ID --limit=1 --json
多个工作区
slackcli 支持多个工作区。请为需要的每个工作区运行身份验证流程:
# Add first workspace
./scripts/extract-tokens https://workspace-one.slack.com
# Add second workspace
./scripts/extract-tokens https://workspace-two.slack.com
# List all authenticated workspaces
slackcli auth list
发送消息时,slackcli 会根据频道 ID 自动路由到正确的工作区。
令牌说明
- 浏览器令牌(xoxc/xoxd)以登录用户的身份运行,而非机器人
- 发送的消息显示为用户发送,而非应用发送
- 用户退出浏览器会话后,令牌将过期
- 若要刷新:从已登录的浏览器会话中重新提取令牌
- 所有工作区凭据都存储在
~/.config/slackcli/workspaces.json
评论
支持 Markdown