总览
本文档汇总了 gort 项目支持的所有即时通讯平台 Channel 的配置指南。
支持的 Channel 列表
快速选择指南
按使用场景选择
| 场景 |
推荐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 |
故障排查通用步骤
- 检查配置: 确认所有必填参数已正确配置
- 验证Token: 使用官方工具或API验证Token有效性
- 检查网络: 确认服务器可访问平台API
- 查看日志: 检查应用日志中的错误信息
- 权限检查: 确认Bot/应用有所需权限
- Webhook测试: 使用curl或Postman测试Webhook端点
官方文档链接
注意: 所有配置指南均基于当前代码实现编写,确保与代码完全一致。如有更新,请以代码实现为准。