warn.go 900 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package util
  2. import (
  3. "bytes"
  4. "encoding/json"
  5. "github.com/gogf/gf/v2/frame/g"
  6. "github.com/gogf/gf/v2/os/gctx"
  7. "net/http"
  8. )
  9. func SendMsgByWXURL(msg string, whs []string) {
  10. for _, url := range whs {
  11. if ok := SendBot(url, msg); !ok {
  12. g.Log().Info(gctx.New(), "企业微信机器人提醒失败--:", url, msg)
  13. }
  14. }
  15. }
  16. func SendBot(webhookURL, msg string) (b bool) {
  17. // 构造请求体
  18. payload := map[string]interface{}{
  19. "msgtype": "text",
  20. "text": map[string]string{
  21. "content": msg,
  22. },
  23. }
  24. // 转换为 JSON 字符串
  25. payloadBytes, err := json.Marshal(payload)
  26. if err != nil {
  27. g.Log().Info(gctx.New(), "Error :", err.Error())
  28. return
  29. }
  30. // 发送 POST 请求
  31. resp, err := http.Post(webhookURL, "application/json", bytes.NewReader(payloadBytes))
  32. if err != nil {
  33. g.Log().Info(gctx.New(), "Error :", err.Error())
  34. return
  35. }
  36. defer resp.Body.Close()
  37. b = true
  38. return
  39. }