构建基于Slack的ChatOps机器人:从原理到实践
1. 解析Slack事件
Slack事件是嵌套的,需要一些解码操作才能获取所需信息。以下代码用于查看事件数据类型并进行解码:
// 对于appMentioned(),通常是slackevents.CallbackEvent类型
// 它将.Data字段解码为*slackevents.EventsAPICallbackEvent类型
// 该类型有.InnerEvent,可进一步解码为其他事件类型
// 我们只关注解码为*slackevents.AppMentionEvent的情况
if decoded, ok := event.Data.(*slackevents.EventsAPICallbackEvent); ok {
if innerEvent, ok := decoded.InnerEvent.Data.(*slackevents.AppMentionEvent); ok {
// 调用makeMsg()方法返回消息类型
// 这里跳过makeMsg()的实现,可从链接代码中获取
msg := makeMsg(innerEvent)
// 遍历正则表达式查找匹配项
for _, regex := range regexes {
if regex.MatchString(msg.Text) {
HandleFunc(msg)
break
}
}
// 若未
超级会员免费看
订阅专栏 解锁全文
20

被折叠的 条评论
为什么被折叠?



