weixin.go 890 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. "log"
  8. "net/http"
  9. )
  10. type WeixinMessage struct {
  11. MsgType string `json:"msgtype"`
  12. Text struct {
  13. Content string `json:"content"`
  14. } `json:"text"`
  15. }
  16. // SendWeixinNotification 发送企业微信机器人告警
  17. func SendWeixinNotification(message string) error {
  18. webhook_url := g.Config().MustGet(gctx.New(), "weixin.webhook_url").String()
  19. if webhook_url == "" {
  20. return nil
  21. }
  22. msg := WeixinMessage{MsgType: "text"}
  23. msg.Text.Content = message
  24. data, err := json.Marshal(msg)
  25. if err != nil {
  26. return err
  27. }
  28. resp, err := http.Post(webhook_url, "application/json", bytes.NewReader(data))
  29. if err != nil {
  30. log.Println("SendWeixinNotification error", err)
  31. return err
  32. }
  33. defer resp.Body.Close()
  34. if resp.StatusCode != http.StatusOK {
  35. return err
  36. }
  37. return nil
  38. }