mi

package
v0.0.0-...-83adff0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 6, 2020 License: GPL-3.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// VipHost VIP host.
	VipHost = "https://vip.api.xmpush.xiaomi.com"
	// DevHost dev host.
	DevHost = "https://sandbox.xmpush.xiaomi.com"
	// ProductionHost production host.
	ProductionHost = "https://api.xmpush.xiaomi.com"

	// AuthPrefix auth prefix.
	AuthPrefix = "key="
	// ResultOk result status.
	ResultOk = "ok" // "ok" means success, "error" means failed.
	// ResultError result status.
	ResultError = "error"
	// ResultCodeOk result status code.
	ResultCodeOk = 0
	// ResultCodeNoValidTargets no valid token.
	ResultCodeNoValidTargets = 20301
	// ResultCodeNoMsgInEmq no message in emq.
	ResultCodeNoMsgInEmq = 80002

	// RegURL 向某个regid或一组regid列表推送某条消息
	RegURL = "/v3/message/regid"
	// AccountURL 根据account,发送消息到指定account上
	AccountURL = "/v2/message/user_account"
	// MultiRegIDURL  针对不同的regid推送不同的消息
	MultiRegIDURL = "/v2/multi_messages/regids"
	// MultiAliasURL 针对不同的aliases推送不同的消息
	MultiAliasURL = "/v2/multi_messages/aliases"
	// MultiUserAccountURL 针对不同的accounts推送不同的消息
	MultiUserAccountURL = "/v2/multi_messages/user_accounts"
	// AliasURL 根据alias,发送消息到指定设备上
	AliasURL = "/v3/message/alias"
	// MultiPackageNameMultiTopicURL 根据topic,发送消息到指定一组设备上
	MultiPackageNameMultiTopicURL = "/v3/message/multi_topic"
	// MultiTopicURL 根据topic,发送消息到指定一组设备上
	MultiTopicURL = "/v2/message/topic"
	// MultiPackageNameAllURL 向所有设备推送某条消息
	MultiPackageNameAllURL = "/v3/message/all"
	// AllURL 向所有设备推送某条消息
	AllURL = "/v2/message/all"
	// TopicURL 向多个topic广播消息
	TopicURL = "/v3/message/multi_topic"
	// ScheduleJobExistURL 检测定时消息的任务是否存在
	ScheduleJobExistURL = "/v2/schedule_job/exist"
	// ScheduleJobDeleteURL 删除指定的定时消息
	ScheduleJobDeleteURL = "/v2/schedule_job/delete"
	// ScheduleJobDeleteByJobKeyURL 删除指定的定时消息
	ScheduleJobDeleteByJobKeyURL = "/v3/schedule_job/delete"

	// StatusURL 追踪消息
	StatusURL = "/v1/trace/message/status"

	// NotifyTypeDefaultAll 包括下面三种(notify type 可以是以下几种的OR组合)
	NotifyTypeDefaultAll = -1
	// NotifyTypeDefaultNone 声音、振动、led灯全关
	NotifyTypeDefaultNone = 0
	// NotifyTypeDefaultSound 使用默认提示音提示
	NotifyTypeDefaultSound = 1
	// NotifyTypeDefaultVibration 使用默认震动提示
	NotifyTypeDefaultVibration = 2
	// NotifyTypeDefaultLight 使用默认led灯光提示
	NotifyTypeDefaultLight = 4

	// NotPassThrough 显示通知
	NotPassThrough = 0
	// PassThrough 静默推送
	PassThrough = 1

	// CallbackURL 客户端收到后回调
	CallbackURL = "https://api.bilibili.com/x/push/callback/xiaomi"
	// CallbackBarStatusEnable .
	CallbackBarStatusEnable = 1
	// CallbackBarStatusDisable .
	CallbackBarStatusDisable = 2
	// CallbackBarStatusUnknown .
	CallbackBarStatusUnknown = 3
	// CallbackBarStatusEnableStr .
	CallbackBarStatusEnableStr = "Enable"
	// CallbackBarStatusDisableStr .
	CallbackBarStatusDisableStr = "Disable"
	// CallbackBarStatusUnknownStr .
	CallbackBarStatusUnknownStr = "Unknown"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Callback

type Callback struct {
	Param     string `json:"param"`     // 开发者上传的自定义参数值。
	BarStatus string `json:"barStatus"` // 消息送达时通知栏的状态。Enable:为用户允许此app展示通知栏消息, Disable:为通知栏消息已关闭, Unknown:通知栏状态未知。
	Type      int    `json:"type"`      // callback类型
	Targets   string `json:"targets"`   // 一批alias或者regId列表,之间是用逗号分割
	Jobkey    string `json:"jobkey"`
}

Callback 推送回执(回调)

type Client

type Client struct {
	Header     http.Header
	HTTPClient *http.Client
	Package    string
	URL        string
	Stats      stat.Stat
}

Client Xiaomi http client.

func NewClient

func NewClient(pkg, auth string, timeout time.Duration) *Client

NewClient returns a Client with request header and auth.

func (*Client) InvalidTokens

func (c *Client) InvalidTokens() (response *Response, err error)

InvalidTokens get invalid tokens.

func (*Client) MockPush

func (c *Client) MockPush(xm *XMMessage) (response *Response, err error)

MockPush mock push.

func (*Client) Push

func (c *Client) Push(xm *XMMessage) (response *Response, err error)

Push sends a Notification to Xiaomi push service.

func (*Client) SetDevelopmentURL

func (c *Client) SetDevelopmentURL(url string)

SetDevelopmentURL sets Production URL.

func (*Client) SetProductionURL

func (c *Client) SetProductionURL(url string)

SetProductionURL sets Production URL.

func (*Client) SetStatusURL

func (c *Client) SetStatusURL()

SetStatusURL sets feedback URL.

func (*Client) SetVipURL

func (c *Client) SetVipURL(url string)

SetVipURL sets VIP URL.

func (*Client) UninstalledTokens

func (c *Client) UninstalledTokens() (response *UninstalledResponse, err error)

UninstalledTokens get uninstalled tokens.

type Data

type Data struct {
	ID   string          `json:"id,omitempty"`
	List []string        `json:"list,omitempty"` // for feedback
	Data json.RawMessage `json:"data,omitempty"` // for status
}

Data response data.

type RegidCallback

type RegidCallback struct {
	AppID     string `json:"app_id"`
	AppVer    string `json:"app_version"`
	AppPkg    string `json:"app_pkg"`
	AppSecret string `json:"app_secret"`
	Regid     string `json:"regid"`
}

RegidCallback regid callback

type Response

type Response struct {
	Result      string `json:"result,omitempty"`      //“result”: string,”ok” 表示成功, “error” 表示失败。
	Reason      string `json:"reason,omitempty"`      //reason: string,如果失败,reason失败原因详情。
	Code        int    `json:"code,omitempty"`        //“code”: integer,0表示成功,非0表示失败。
	Data        Data   `json:"data,omitempty"`        //“data”: string,本身就是一个json字符串(其中id字段的值就是消息的Id)。
	Description string `json:"description,omitempty"` //“description”: string, 对发送消息失败原因的解释。
	Info        string `json:"info,omitempty"`        //“info”: string,详细信息。
	TraceID     string `json:"trace_id,omitempty"`    // trace id for xiaomi
}

Response push result.

type UninstalledData

type UninstalledData struct {
	Token string `json:"regId"`
	Ts    int64  `json:"ts"`
}

UninstalledData .

type UninstalledResponse

type UninstalledResponse struct {
	Code   int      `json:"errorCode,omitempty"`
	Reason string   `json:"reason,omitempty"`
	Result []string `json:"result,omitempty"`
	Data   []string
}

UninstalledResponse .

type XMMessage

type XMMessage struct {
	Payload               string //	消息的内容。
	RestrictedPackageName string // App的包名。备注:V2版本支持一个包名,V3版本支持多包名(中间用逗号分割)。
	PassThrough           int    //	pass_through的值可以为: 0 表示通知栏消息1 表示透传消息
	NotifyType            int    // 通知方式
	Title                 string //	通知栏展示的通知的标题。
	Description           string //	通知栏展示的通知的描述。
	TaskID                string // 上报数据使用
	// contains filtered or unexported fields
}

XMMessage define reference struct http://dev.xiaomi.com/doc/?p=533

func (*XMMessage) SetCallbackParam

func (xm *XMMessage) SetCallbackParam(p string)

SetCallbackParam 把应用标识传过去,这样方便区分应用

func (*XMMessage) SetNotifyID

func (xm *XMMessage) SetNotifyID(notifyID string)

SetNotifyID 可选项 默认情况下,通知栏只显示一条推送消息。如果通知栏要显示多条推送消息,需要针对不同的消息设置不同的notify_id(相同notify_id的通知栏消息会覆盖之前的)。 notify_id 0-4 同一个notifyId在通知栏只会保留一条

func (*XMMessage) SetNotifyType

func (xm *XMMessage) SetNotifyType(typ int)

SetNotifyType sound / vibration / led light

func (*XMMessage) SetRegID

func (xm *XMMessage) SetRegID(deviceToken string)

SetRegID 根据registration_id,发送消息到指定设备上。可以提供多个registration_id,发送给一组设备,不同的registration_id之间用“,”分割。

func (*XMMessage) SetTimeToLive

func (xm *XMMessage) SetTimeToLive(expire int64)

SetTimeToLive 可选项 如果用户离线,设置消息在服务器保存的时间,单位:ms。服务器默认最长保留两周。 time_to_live 可选项,当用户离线是,消息保留时间,默认两周,单位ms

func (*XMMessage) SetTimeToSend

func (xm *XMMessage) SetTimeToSend(timeToSend int64)

SetTimeToSend 可选项 定时发送消息。用自1970年1月1日以来00:00:00.0 UTC时间表示(以毫秒为单位的时间)。注:仅支持七天内的定时消息。

func (*XMMessage) SetTopic

func (xm *XMMessage) SetTopic(UserAccount string)

SetTopic 根据topic,发送消息给订阅了该topic的所有设备。参数仅适用于“/message/topic”HTTP API。

func (*XMMessage) SetUserAccount

func (xm *XMMessage) SetUserAccount(UserAccount string)

SetUserAccount 根据user_account,发送消息给设置了该user_account的所有设备。可以提供多个user_account,user_account之间用“,”分割。参数仅适用于“/message/user_account”HTTP API。

func (*XMMessage) SetUserAccounts

func (xm *XMMessage) SetUserAccounts(UserAccount string)

SetUserAccounts 针对不同的userAccount推送不同的消息 根据user_accounts,发送消息给设置了该user_account的所有设备。可以提供多个user_account,user_account之间用“,”分割。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL