go-wxhelper/utils/send.go

41 lines
912 B
Go
Raw Permalink Normal View History

2023-09-25 14:16:59 +08:00
package utils
import (
"encoding/json"
"github.com/go-resty/resty/v2"
"go-wechat/config"
2023-09-25 14:16:59 +08:00
"log"
2023-09-26 15:12:47 +08:00
"time"
2023-09-25 14:16:59 +08:00
)
// SendMessage
// @description: 发送消息
// @param toId
// @param atId
// @param msg
2023-09-26 15:12:47 +08:00
func SendMessage(toId, atId, msg string, retryCount int) {
if retryCount > 5 {
log.Printf("重试五次失败,停止发送")
return
}
2023-09-25 14:16:59 +08:00
// 组装参数
param := map[string]any{
"wxid": toId, // 群或好友Id
"msg": msg, // 消息
}
pbs, _ := json.Marshal(param)
res := resty.New()
resp, err := res.R().
SetHeader("Content-Type", "application/json;chartset=utf-8").
SetBody(string(pbs)).
Post(config.Conf.Wechat.GetURL("/api/sendTextMsg"))
2023-09-25 14:16:59 +08:00
if err != nil {
log.Printf("发送文本消息失败: %s", err.Error())
2023-09-26 15:12:47 +08:00
// 休眠五秒后重新发送
time.Sleep(5 * time.Second)
SendMessage(toId, atId, msg, retryCount+1)
2023-09-25 14:16:59 +08:00
}
log.Printf("发送文本消息结果: %s", resp.String())
}