package push import ( "Open_IM/internal/push/jpush/common" "Open_IM/internal/push/jpush/requestBody" "Open_IM/pkg/common/config" "bytes" "encoding/json" "io/ioutil" "net/http" ) type JPushResp struct { } func JGAccountListPush(accounts []string, alert, detailContent, platform string) ([]byte, error) { var pf requestBody.Platform _ = pf.SetPlatform(platform) var au requestBody.Audience au.SetAlias(accounts) var no requestBody.Notification no.SetAlert(alert, platform) var me requestBody.Message me.SetMsgContent(detailContent) var o requestBody.Options o.SetApnsProduction(false) var po requestBody.PushObj po.SetPlatform(&pf) po.SetAudience(&au) po.SetNotification(&no) po.SetMessage(&me) po.SetOptions(&o) con, err := json.Marshal(po) if err != nil { return nil, err } client := &http.Client{} req, err := http.NewRequest("POST", config.Config.Push.Jpns.PushUrl, bytes.NewBuffer(con)) if err != nil { return nil, err } req.Header.Set("Authorization", common.GetAuthorization(config.Config.Push.Jpns.AppKey, config.Config.Push.Jpns.MasterSecret)) resp, err := client.Do(req) if err != nil { return nil, err } defer resp.Body.Close() result, err := ioutil.ReadAll(resp.Body) if err != nil { return nil, err } return result, nil }