项目地址
https://github.com/ghjkg546/go-blog
我的夸克网盘资源站加入了公众号回复,方便你的粉丝们直接获取资源
效果演示
同时讲解下接入代码,实现非常简单
首先定一下结构体
// 解析 MsgType 字段
var msgType struct {
MsgType string `xml:"MsgType"`
}
解析事件类型
// 读取原始 XML 数据
body, err := c.GetRawData()
if err != nil {
log.Printf("[消息接收] - 读取请求体失败: %v\n", err)
return
}
// 打印原始 XML 数据(调试用)
log.Printf("[消息接收] - 原始 XML 数据: %s\n", string(body))
err = xml.Unmarshal(body, &msgType)
if err != nil {
log.Printf("[消息接收] - 解析 MsgType 失败: %v\n", err)
return
}
log.Printf("type" + msgType.MsgType)
如果是关注事件,则回复关注文本
if msgType.MsgType == "event" {
var eventMsg WXEventMsg
err2 := xml.Unmarshal(body, &eventMsg)
if err2 != nil {
log.Printf("[消息接收] - 解析 event 失败: %v\n", err)
return
}
log.Printf("type1" + eventMsg.Event)
if eventMsg.Event == "subscribe" {
WXMsgReply(c, eventMsg.ToUserName, eventMsg.FromUserName, "欢迎关注我,回复【资源名】获得下载地址哦")
}
return
}
文本事件从数据库查询资源地址回复
var textMsg WXTextMsg
err = xml.Unmarshal(body, &textMsg)
if err != nil {
log.Printf("[消息接收] - 解析事件消息失败: %v\n", err)
return
}
log.Printf("[消息接收] - 收到消息, 消息类型为: %s, 消息内容为: %s\n", textMsg.MsgType, textMsg.Content)
fmt.Println(textMsg.Content)
//查询资源地址并回复