78 lines
1.8 KiB
Go
78 lines
1.8 KiB
Go
package jpush
|
|
|
|
const (
|
|
// CallbackTypeReceive 送达才回执
|
|
CallbackTypeReceive = callbackType(1)
|
|
// CallbackTypeClick 点击才回执
|
|
CallbackTypeClick = callbackType(2)
|
|
// CallbackTypeAll 送达和点击都回执
|
|
CallbackTypeAll = callbackType(3)
|
|
|
|
// StatusSwitchOn 回执时候通知栏开关状态:开
|
|
StatusSwitchOn = int(1)
|
|
// StatusSwitchOff 回执时候通知栏开关状态:关
|
|
StatusSwitchOff = int(2)
|
|
|
|
defaultCallbackURL = "https://api.bilibili.com/x/push/callback/jpush"
|
|
)
|
|
|
|
type callbackType int
|
|
|
|
// CallbackReq 消息回执请求体
|
|
type CallbackReq struct {
|
|
// URL 接受回执数据的URL
|
|
URL string `json:"url"`
|
|
// Type 需要的回执类型
|
|
Type callbackType `json:"type"`
|
|
// Params 携带的自定义参数
|
|
Params map[string]string `json:"params"`
|
|
}
|
|
|
|
// NewCallbackReq new Callback
|
|
func NewCallbackReq() *CallbackReq {
|
|
return &CallbackReq{
|
|
URL: defaultCallbackURL,
|
|
Type: CallbackTypeReceive,
|
|
Params: make(map[string]string),
|
|
}
|
|
}
|
|
|
|
// SetURL 设置接收回执的URL
|
|
func (cb *CallbackReq) SetURL(url string) {
|
|
if url == "" {
|
|
return
|
|
}
|
|
cb.URL = url
|
|
}
|
|
|
|
// SetType 设置需要回执的类型
|
|
func (cb *CallbackReq) SetType(typ callbackType) {
|
|
cb.Type = typ
|
|
}
|
|
|
|
// SetParam 设置自定义参数
|
|
func (cb *CallbackReq) SetParam(m map[string]string) {
|
|
if m == nil {
|
|
return
|
|
}
|
|
cb.Params = m
|
|
}
|
|
|
|
// CallbackReply 消息回执接收体
|
|
type CallbackReply struct {
|
|
// Token device token
|
|
Token string `json:"registration_id"`
|
|
// Platform android or ios
|
|
Platform string `json:"platform"`
|
|
// Time 消息送达或点击的秒级时间戳
|
|
Time int64 `json:"sent_time"`
|
|
// Switch 通知栏消息开关
|
|
Switch bool `json:"notification_state"`
|
|
// Type 送达或点击
|
|
Type callbackType `json:"callback_type"`
|
|
// Channel 下发通道
|
|
Channel int `json:"channel"`
|
|
// Params 自定义参数
|
|
Params map[string]string `json:"params"`
|
|
}
|