package global import ( "context" "enterprise/common/config" "github.com/ArtisanCloud/PowerWeChat/v3/src/work" "github.com/ArtisanCloud/PowerWeChat/v3/src/work/message/request" log "github.com/sirupsen/logrus" "github.com/smbrave/goutil" "github.com/spf13/cast" "strings" ) var ( wxEnterprise *work.Work ) func initWxWork() (*work.Work, error) { cfg := config.GetConfig() client, err := work.NewWork(&work.UserConfig{ CorpID: cfg.QyWeixin.Corpid, AgentID: cast.ToInt(cfg.QyWeixin.EnterpriseAgent), Secret: cfg.QyWeixin.EnterpriseSecret, OAuth: work.OAuth{ Callback: "https://wecom.artisan-cloud.com/callback", Scopes: nil, }, }) if err != nil { log.Errorf("config[%s] init error : %s", goutil.EncodeJSON(cfg), err.Error()) return nil, err } return client, nil } func SendMessage(user []string, content string) error { if wxEnterprise == nil { wxM, err := initWxWork() if err != nil { return err } wxEnterprise = wxM } cfg := config.GetConfig() receivers := user message := &request.RequestMessageSendText{} message.ToUser = strings.Join(receivers, "|") message.MsgType = "text" message.AgentID = cast.ToInt(cfg.QyWeixin.EnterpriseAgent) message.Text = &request.RequestText{Content: content} if _, err := wxEnterprise.Message.SendText(context.Background(), message); err != nil { log.Errorf("send message [%s] error : %s", goutil.EncodeJSON(message), err) return err } return nil }