type Message struct {
MsgType string `json:"msgtype"`
Text struct {
Content string `json:"content"`
} `json:"text"`
}
func SendMessage(msg string) {
var m Message
m.MsgType = "text"
m.Text.Content = msg
jsons, err := json.Marshal(m)
if err != nil {
utils.Logger.Error("SendMessage Marshal failed", zap.Error(err))
return
}
resp := string(jsons)
client := &http.Client{}
req, err := http.NewRequest("POST", setting.SendMessageSetting.Url, strings.NewReader(resp))
if err != nil {
utils.Logger.Error("SendMessage http NewRequest failed", zap.Error(err))
return
}
req.Header.Set("Content-Type", "application/json")
r, err := client.Do(req)
if err != nil {
utils.Logger.Error("SendMessage client Do failed", zap.Error(err))
return
}
defer r.Body.Close()
body, err := ioutil.ReadAll(r.Body)
if err != nil {
utils.Logger.Error("SendMessage ReadAll Body failed", zap.Error(err))
return
}
utils.Logger.Info("SendMessage success", zap.String("body", string(body)))
}
说明utils.Logger.Error这些是我使用的zap包,一般没有使用zap的可以直接替换为log.print之类的。
setting.SendMessageSetting.Url 就是企业微信的webhook地址,改为自己的即可
如果给你带来了方便记得点赞哦