跳转至

总览

本文档汇总了 gort 项目支持的所有即时通讯平台 Channel 的配置指南。

支持的 Channel 列表

Channel 接入方式 文档链接
DingTalk (钉钉) Webhook机器人 01-channel-dingtalk.md
Feishu (飞书) 自建应用 + Token 02-channel-feishu.md
Telegram Bot Token 03-channel-telegram.md
WeChat (微信公众号) 公众号 + Token 04-channel-wechat.md
WhatsApp Business API 05-channel-whatsapp.md
iMessage macOS + imsg CLI 06-channel-imessage.md
Messenger Page Access Token 07-channel-messenger.md
WeCom (企业微信) Webhook机器人 08-channel-wecom.md
Slack Bot Token 09-channel-slack.md
Discord Bot Token 10-channel-discord.md

快速选择指南

按使用场景选择

场景 推荐Channel
国内企业办公 DingTalk, WeCom, Feishu
海外用户 Slack, Discord, Telegram
客户支持 WhatsApp, Messenger
个人/小团队 Telegram, Discord
macOS生态 iMessage
微信生态 WeChat公众号

按功能需求选择

功能需求 支持的Channel
Markdown消息 DingTalk, Slack, Discord, Telegram
富文本/卡片 DingTalk, Feishu, WeCom, Slack, Discord
文件上传 全部支持
表情回应 Slack, Discord, iMessage
消息编辑/删除 Slack, Discord, Telegram
线程回复 Slack, Discord
交互式组件 Slack, Discord

通用配置原则

1. 安全最佳实践

  • Token保护: 所有Token和密钥应存储在环境变量或密钥管理服务中
  • Webhook验证: 启用Webhook签名验证,防止伪造请求
  • HTTPS强制: 所有Webhook URL必须使用HTTPS
  • 权限最小化: 只申请必要的权限/Scopes

2. 配置管理建议

# 推荐:使用环境变量
default_channel:
  type: slack
  config:
    bot_token: ${SLACK_BOT_TOKEN}
    signing_secret: ${SLACK_SIGNING_SECRET}

3. 错误处理模式

// 统一的错误处理
if err != nil {
    switch {
    case errors.Is(err, channel.ErrChannelNotRunning):
        // Channel未启动
    case errors.Is(err, channel.ErrRateLimited):
        // 触发限流,需要重试
    default:
        // 其他错误
    }
}

配置对比表

Channel Token类型 Webhook支持 特殊要求
DingTalk Key 仅发送 加签验证
Feishu AppID+Secret 双向 Token自动刷新
Telegram Bot Token 双向 长轮询可选
WeChat AppID+Secret+Token 双向 消息加密可选
WhatsApp Access Token 双向 商业账号
iMessage N/A N/A macOS only
Messenger Page Token 双向 24小时窗口
WeCom Key 仅发送 加签验证
Slack Bot Token 双向 Scopes权限
Discord Bot Token 双向 邀请Bot

故障排查通用步骤

  1. 检查配置: 确认所有必填参数已正确配置
  2. 验证Token: 使用官方工具或API验证Token有效性
  3. 检查网络: 确认服务器可访问平台API
  4. 查看日志: 检查应用日志中的错误信息
  5. 权限检查: 确认Bot/应用有所需权限
  6. Webhook测试: 使用curl或Postman测试Webhook端点

官方文档链接


注意: 所有配置指南均基于当前代码实现编写,确保与代码完全一致。如有更新,请以代码实现为准。