这是 JPush REST API 的 Golang 版本封装开发包,不是由极光推送官方提供的,一般支持最新的 API 功能。
对应的 REST API 文档:https://docs.jiguang.cn/jpush/server/push/server_overview/
- Golang 1.15
go get github.com/Krocsky/chaos-jpush-api
代码样例在 jpush-api-golang 中的 example 文件夹中,点击查看所有 example 。
这个样例演示了消息推送。
j := jpush.NewJPush(Appkey, masterSecret)
aud := &jpush.PushAudience{}
aud.SetAll(true)
req := &jpush.PushRequest{
Platform: &jpush.Platform{Platforms: []string{"android", "ios"}},
Audience: aud,
Notification: &jpush.PushNotification{
Alert: "test alert",
Android: &jpush.NotificationAndroid{
Alert: "alert",
Title: "title",
BuilderID: 0,
Priority: 1,
AlertType: 7,
},
},
Options: &jpush.PushOptions{
TimeToLive: 0,
},
}
ret, err := j.Push(req)
if err != nil {
fmt.Println(err.Error())
return
}
参考文档:http://docs.jiguang.cn/jpush/server/push/http_status_code/
Push v3 API 状态码 参考文档:http://docs.jiguang.cn/jpush/server/push/rest_api_v3_push/
Report API 状态码 参考文档:http://docs.jiguang.cn/jpush/server/push/rest_api_v3_report/
Device API 状态码 参考文档:http://docs.jiguang.cn/jpush/server/push/rest_api_v3_device/
Push Schedule API 状态码 参考文档:http://docs.jiguang.cn/jpush/server/push/rest_api_push_schedule/
Release 页面 有详细的版本发布记录与下载。
新增字段 ThirdPartyChannel、ChannelID,参考文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push#android
// NotificationAndroid define android notification
type NotificationAndroid struct {
Alert string `json:"alert"`
Title string `json:"title,omitempty"`
BuilderID int `json:"builder_id,int,omitempty"`
Priority int `json:"priority,omitempty"`
Category string `json:"category,omitempty"`
Style int `json:"style,int,omitempty"`
AlertType int `json:"alert_type,int,omitempty"`
BigText string `json:"big_text,omitempty"`
Inbox map[string]interface{} `json:"inbox,omitempty"`
BigPicPath string `json:"big_pic_path,omitempty"`
Extras map[string]interface{} `json:"extras,omitempty"`
LargeIcon string `json:"large_icon,omitempty"`
Intent map[string]interface{} `json:"intent,omitempty"`
ChannelID string `json:"channel_id,omitempty"`
}
// PushOptions define options
type PushOptions struct {
SendNo int `json:"sendno,int,omitempty"`
TimeToLive int `json:"time_to_live,int,omitempty"`
OverrideMsgID int64 `json:"override_msg_id,int64,omitempty"`
ApnsProduction bool `json:"apns_production"`
ApnsCollapseID string `json:"apns_collapse_id,omitempty"`
BigPushDuration int `json:"big_push_duration,int,omitempty"`
ThirdPartyChannel map[string]interface{} `json:"third_party_channel,omitempty"`
Classification int `json:"classification,int,omitempty"` // 消息类型分类: 0:代表运营消息 1:代表系统消息【优先级最高会覆盖,options.third_party_channel.vivo.classification third_party_channel 字段设置的值;极光不对指定的消息类型进行判断或校准,会以开发者自行指定的消息类型适配 Android 厂商通道。不填默认为 0】
}