← 返回
未分类 Key

Slack Messaging

Slack messaging — send messages, manage channels, upload files, add reactions, and automate team notifications via CLI and API.
Slack 消息—通过 CLI 和 API 发送消息、管理频道、上传文件、添加反应并自动化团队通知。
charlie-morrison
未分类 clawhub v1.0.0 1 版本 100000 Key: 需要
★ 0
Stars
📥 409
下载
💾 2
安装
1
版本
#latest

概述

Slack Integration

Send messages, manage channels, upload files, and automate notifications in Slack workspaces using the Web API. Works with bot tokens or user tokens.

Setup

# 1. Create a Slack App: https://api.slack.com/apps → Create New App
# 2. Add scopes under OAuth & Permissions:
#    Bot Token Scopes: chat:write, channels:read, channels:history,
#                      files:write, reactions:write, users:read
# 3. Install to workspace → copy Bot User OAuth Token

export SLACK_TOKEN="xoxb-..."   # Bot token (starts with xoxb-)

For user-level actions (DMs to yourself, custom status), use a User OAuth Token (xoxp-...) instead.

Sending Messages

# Simple text message
curl -s -X POST https://slack.com/api/chat.postMessage \
  -H "Authorization: Bearer $SLACK_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"channel": "C0123ABCDEF", "text": "Deploy complete ✓"}'

# With rich formatting (Block Kit)
curl -s -X POST https://slack.com/api/chat.postMessage \
  -H "Authorization: Bearer $SLACK_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "C0123ABCDEF",
    "blocks": [
      {"type": "header", "text": {"type": "plain_text", "text": "Deploy Report"}},
      {"type": "section", "text": {"type": "mrkdwn", "text": "*Status:* ✅ Success\n*Version:* v2.1.0\n*Duration:* 45s"}}
    ]
  }'

# Reply in thread
curl -s -X POST https://slack.com/api/chat.postMessage \
  -H "Authorization: Bearer $SLACK_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"channel": "C0123ABCDEF", "thread_ts": "1234567890.123456", "text": "Fix deployed"}'

# Schedule a message (Unix timestamp)
curl -s -X POST https://slack.com/api/chat.scheduleMessage \
  -H "Authorization: Bearer $SLACK_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"channel": "C0123ABCDEF", "text": "Standup time!", "post_at": 1700000000}'

# Update a message
curl -s -X POST https://slack.com/api/chat.update \
  -H "Authorization: Bearer $SLACK_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"channel": "C0123ABCDEF", "ts": "1234567890.123456", "text": "Updated text"}'

Channels

# List channels (paginated — follow next_cursor)
curl -s "https://slack.com/api/conversations.list?types=public_channel,private_channel&limit=200" \
  -H "Authorization: Bearer $SLACK_TOKEN" | jq '.channels[] | {id, name, num_members}'

# Get channel info
curl -s "https://slack.com/api/conversations.info?channel=C0123ABCDEF" \
  -H "Authorization: Bearer $SLACK_TOKEN"

# Channel history (recent messages)
curl -s "https://slack.com/api/conversations.history?channel=C0123ABCDEF&limit=10" \
  -H "Authorization: Bearer $SLACK_TOKEN" | jq '.messages[] | {ts, text, user}'

# Find channel by name
curl -s "https://slack.com/api/conversations.list?types=public_channel&limit=999" \
  -H "Authorization: Bearer $SLACK_TOKEN" | jq '.channels[] | select(.name=="general") | .id'

# Create a channel
curl -s -X POST https://slack.com/api/conversations.create \
  -H "Authorization: Bearer $SLACK_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "incident-2026-04", "is_private": false}'

# Set channel topic
curl -s -X POST https://slack.com/api/conversations.setTopic \
  -H "Authorization: Bearer $SLACK_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"channel": "C0123ABCDEF", "topic": "Production incident — DB latency spike"}'

Files

# Upload a file (v2 API)
curl -s -X POST https://slack.com/api/files.getUploadURLExternal \
  -H "Authorization: Bearer $SLACK_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"filename": "report.csv", "length": 1024}' \
  | jq '{upload_url, file_id}'
# Then POST the file content to upload_url, then call files.completeUploadExternal

# Share a remote file link
curl -s -X POST https://slack.com/api/files.remote.add \
  -H "Authorization: Bearer $SLACK_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"external_id": "report-1", "external_url": "https://example.com/report.pdf", "title": "Monthly Report"}'

Reactions & Users

# Add reaction to a message
curl -s -X POST https://slack.com/api/reactions.add \
  -H "Authorization: Bearer $SLACK_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"channel": "C0123ABCDEF", "timestamp": "1234567890.123456", "name": "white_check_mark"}'

# List users
curl -s "https://slack.com/api/users.list?limit=200" \
  -H "Authorization: Bearer $SLACK_TOKEN" | jq '.members[] | {id, name, real_name}'

# User info by ID
curl -s "https://slack.com/api/users.info?user=U0123ABCDEF" \
  -H "Authorization: Bearer $SLACK_TOKEN" | jq '.user | {name, real_name, tz}'

# Look up user by email
curl -s "https://slack.com/api/users.lookupByEmail?email=dev@company.com" \
  -H "Authorization: Bearer $SLACK_TOKEN" | jq '.user.id'

Common Workflows

CI/CD notification: After a deploy, post a formatted message to #deployments with version, commit, and status. On failure, create a thread with the error log.

Incident channel: Create a private channel named incident-YYYY-MM-DD-, set the topic, invite responders, post the initial report with severity and affected services.

Standup reminder: Schedule a daily message at 9:30 AM to #team with a prompt template. Collect threaded replies.

Error alert: When Sentry fires a webhook, post the error title, count, and link to the relevant channel. Add a 🔴 reaction for critical, 🟡 for warning.

Notes

  • Bot tokens (xoxb-) can only post to channels the bot has been invited to
  • Rate limits: ~1 msg/sec per channel (Tier 2); respect Retry-After headers
  • Channel IDs (not names) are required for most API calls — look them up first
  • For rich messages, use Block Kit Builder to design layouts
  • mrkdwn (Slack's markdown) uses bold, _italic_, ~strike~, ` code , >quote`
  • DMs: use conversations.open with user IDs to get the DM channel ID, then post normally

版本历史

共 1 个版本

  • v1.0.0 当前
    2026-05-07 20:26 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

Devcontainer Validator

charlie-morrison
在 VS Code 开发容器中验证 devcontainer.json 的语法、结构、功能、端口、生命周期脚本、定制项及安全最佳实践。
★ 0 📥 465

Env Config Validator

charlie-morrison
校验 .env 文件,匹配 schema,比较环境(dev 与 prod),检测尾部空格、占位符、无效端口、缺失 protoc 等常见错误
★ 0 📥 458

Pyproject Toml Validator

charlie-morrison
依据 PEP 517/621 规则校验 pyproject.toml 文件,验证项目元数据、构建系统和工具配置,并提供详细报告。
★ 0 📥 468