Documentation ¶
Index ¶
- Variables
- func MakeAuthHeader(appID, secretKey string) string
- func NewHttpClient() *http.Client
- func PushURL(url string)
- type Alert
- func (alert Alert) Set(key string, value interface{})
- func (alert Alert) SetActionLocKey(data string)
- func (alert Alert) SetBody(content string)
- func (alert Alert) SetLaunchImage(data string)
- func (alert Alert) SetLocArgs(data []string)
- func (alert Alert) SetLocKey(data string)
- func (alert Alert) SetTitle(title string)
- func (alert Alert) SetTitleLocArgs(data []string)
- func (alert Alert) SetTitleLocKey(data string)
- type AndroidParams
- type Aps
- type AudienceType
- type Authorization
- type CommonRsp
- type CommonRspEnv
- type IAuth
- type IOSParams
- type IPushMsg
- func DefaultPushMsg(platform Platform, msgType MessageType, title string, content string) IPushMsg
- func NewAccountNotifyPushMsg(platform Platform, title string, content string, accounts ...string) IPushMsg
- func NewAccountPushMsg(platform Platform, msgType MessageType, title string, content string, ...) IPushMsg
- func NewPushAllNotifyPushMsg(platform Platform, title string, content string) IPushMsg
- func NewPushAllPushMsg(platform Platform, msgType MessageType, title string, content string) IPushMsg
- func NewTagNotifyPushMsg(platform Platform, title string, content string, tagOpt TagOperation, ...) IPushMsg
- func NewTagPushMsg(platform Platform, msgType MessageType, title string, content string, ...) IPushMsg
- func NewTokenNotifyPushMsg(platform Platform, title string, content string, tokens ...string) IPushMsg
- func NewTokenPushMsg(platform Platform, msgType MessageType, title string, content string, ...) IPushMsg
- type Message
- type MessageType
- type Platform
- type PushMsg
- type PushMsgOption
- func OptionAccountList(al ...string) PushMsgOption
- func OptionAccountListAdd(a string) PushMsgOption
- func OptionAccountType(at int) PushMsgOption
- func OptionAddAction(k string, v interface{}) PushMsgOption
- func OptionAndroidParams(params *AndroidParams) PushMsgOption
- func OptionAps(aps *Aps) PushMsgOption
- func OptionApsAlert(alert Alert) PushMsgOption
- func OptionApsBadage(badge int) PushMsgOption
- func OptionApsCategory(category string) PushMsgOption
- func OptionApsContentAvailable(contentAvailable int) PushMsgOption
- func OptionApsSound(sound string) PushMsgOption
- func OptionApsThreadId(threadId string) PushMsgOption
- func OptionBuilderID(id int) PushMsgOption
- func OptionCleanable(c int) PushMsgOption
- func OptionContent(c string) PushMsgOption
- func OptionCustomContent(ct map[string]string) PushMsgOption
- func OptionCustomContentSet(k, v string) PushMsgOption
- func OptionEnvDevelop() PushMsgOption
- func OptionEnvProduction() PushMsgOption
- func OptionExpireTime(et time.Time) PushMsgOption
- func OptionIOSParams(params *IOSParams) PushMsgOption
- func OptionIconRes(ir string) PushMsgOption
- func OptionIconType(it int) PushMsgOption
- func OptionLights(l int) PushMsgOption
- func OptionLoopTimes(lt int) PushMsgOption
- func OptionMessage(m Message) PushMsgOption
- func OptionMessageType(t MessageType) PushMsgOption
- func OptionMultiPkg(mp bool) PushMsgOption
- func OptionNID(id int) PushMsgOption
- func OptionPlatAndroid() PushMsgOption
- func OptionPlatIos() PushMsgOption
- func OptionPlatform(p Platform) PushMsgOption
- func OptionPushID(pid string) PushMsgOption
- func OptionRing(ring int) PushMsgOption
- func OptionRingRaw(rr string) PushMsgOption
- func OptionSendTime(st time.Time) PushMsgOption
- func OptionSeq(s int64) PushMsgOption
- func OptionSmallIcon(si int) PushMsgOption
- func OptionStatTag(st string) PushMsgOption
- func OptionStyleID(s int) PushMsgOption
- func OptionTagList(op TagOperation, tags ...string) PushMsgOption
- func OptionTagListOpt2(tl TagList) PushMsgOption
- func OptionTitle(t string) PushMsgOption
- func OptionTokenList(tl ...string) PushMsgOption
- func OptionTokenListAdd(t string) PushMsgOption
- func OptionVibrate(v int) PushMsgOption
- type TagList
- type TagOperation
- type XgClient
- func (xg XgClient) MarshalResp(resp *http.Response) CommonRsp
- func (xg XgClient) Push(msg IPushMsg) CommonRsp
- func (xg XgClient) PushWithAuthorization(msg IPushMsg, auth IAuth) CommonRsp
- func (xg *XgClient) SetAndroidAuth(auth IAuth)
- func (xg *XgClient) SetAuth(appId string, secretKey string, platform Platform)
- func (xg *XgClient) SetIOSAuth(auth IAuth)
Constants ¶
This section is empty.
Variables ¶
var XingeURL = "https://openapi.xg.qq.com/v3/push/app"
XingeURL 信鸽API地址
Functions ¶
Types ¶
type Alert ¶
type Alert map[string]interface{}
Alert 自定义Alert的数据类型
func DefaultApsAlert ¶
DefaultApsAlert 创建默认的Alert
func (Alert) SetActionLocKey ¶
SetActionLocKey 设置相关属性
func (Alert) SetTitleLocArgs ¶
SetTitleLocArgs 设置相关属性
type AndroidParams ¶
type AndroidParams struct { NID int `json:"n_id,omitempty"` BuilderID int `json:"builder_id,omitempty"` Ring int `json:"ring,omitempty"` RingRaw string `json:"ring_raw,omitempty"` Vibrate int `json:"vibrate,omitempty"` Lights int `json:"lights,omitempty"` Cleanable int `json:"clearable,omitempty"` IconType int `json:"icon_type,omitempty"` IconRes string `json:"icon_res,omitempty"` StyleID int `json:"style_id,omitempty"` SmallIcon int `json:"small_icon,omitempty"` Action map[string]interface{} `json:"action,omitempty"` CustomContent map[string]string `json:"custom_content,omitempty"` }
AndroidParams 安卓push参数
func DefaultAndroidParams ¶
func DefaultAndroidParams() *AndroidParams
DefaultAndroidParams 默认的Android推送参数
type Aps ¶
type Aps struct { Alert `json:"alert,omitempty"` Badge int `json:"badge,omitempty"` Category string `json:"category,omitempty"` ContentAvailable int `json:"content-available,omitempty"` Sound string `json:"sound,omitempty"` ThreadId string `json:"thread_id,omitempty"` }
Aps 通知栏iOS消息的aps字段,详情请参照苹果文档 https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/PayloadKeyReference.html#//apple_ref/doc/uid/TP40008194-CH17-SW1
type AudienceType ¶
type AudienceType string
AudienceType 推送目标
const ( // AudienceTypeAll 全量推送 AudienceTypeAll AudienceType = "all" // AudienceTypeTag 标签推送 AudienceTypeTag AudienceType = "tag" // AudienceTypeToken 单设备推送 AudienceTypeToken AudienceType = "token" // AudienceTypeTokenList 设备列表推送 AudienceTypeTokenList AudienceType = "token_list" // AudienceTypeAccount 单账号推送 AudienceTypeAccount AudienceType = "account" // AudienceTypeAccountList 账号列表推送 AudienceTypeAccountList AudienceType = "account_list" )
type Authorization ¶
Authorization 用来添加请求Authorization
type CommonRsp ¶
type CommonRsp struct { // TODO: doc this Seq int64 `json:"seq"` // 推送id PushID string `json:"push_id"` // 错误码 RetCode int `json:"ret_code"` // 用户指定推送环境,仅支持iOS Environment CommonRspEnv `json:"environment"` // 结果描述 ErrMsg string `json:"err_msg,omitempty"` // 请求正确且有额外数据时,则结果在这个字段中 Result map[string]string `json:"result,omitempty"` }
CommonRsp 信鸽推送接口的通用基础返回值
type CommonRspEnv ¶
type CommonRspEnv string
CommonRspEnv 信鸽推送接口通用基础返回值的environment字段
const ( // EnvProd 生产环境 EnvProd CommonRspEnv = "product" // EnvDev 测试环境 EnvDev CommonRspEnv = "dev" )
type IAuth ¶
type IAuth interface {
// contains filtered or unexported methods
}
IAuth 授权工具接口
func MakeAuthoraztion ¶
MakeAuthoraztion 构造一个鉴权
type IOSParams ¶
type IOSParams struct { Aps *Aps `json:"aps,omitempty"` Custom map[string]string `json:"custom,omitempty"` }
IOSParams iOS push参数
func DefaultIOSParams ¶
DefaultIOSParams 默认的iOS推送参数
type IPushMsg ¶
type IPushMsg interface { RenderOptions(opts ...PushMsgOption) error // contains filtered or unexported methods }
IPushMsg PushMsg实现的接口
func DefaultPushMsg ¶
func DefaultPushMsg(platform Platform, msgType MessageType, title string, content string) IPushMsg
DefaultPushMsg 创建基础的推送消息
func NewAccountNotifyPushMsg ¶
func NewAccountNotifyPushMsg(platform Platform, title string, content string, accounts ...string) IPushMsg
NewAccountNotifyPushMsg 基于account的notify类型的推送
func NewAccountPushMsg ¶
func NewAccountPushMsg(platform Platform, msgType MessageType, title string, content string, accounts ...string) IPushMsg
NewAccountPushMsg 基于account的推送
func NewPushAllNotifyPushMsg ¶
NewPushAllNotifyPushMsg 基于notify类型的全员推送
func NewPushAllPushMsg ¶
func NewPushAllPushMsg(platform Platform, msgType MessageType, title string, content string) IPushMsg
NewPushAllPushMsg 全员推送
func NewTagNotifyPushMsg ¶
func NewTagNotifyPushMsg(platform Platform, title string, content string, tagOpt TagOperation, tags ...string) IPushMsg
NewTagNotifyPushMsg 基于tag的notify类型的推送
func NewTagPushMsg ¶
func NewTagPushMsg(platform Platform, msgType MessageType, title string, content string, tagOpt TagOperation, tags ...string) IPushMsg
NewTagPushMsg tag类型的推送
func NewTokenNotifyPushMsg ¶
func NewTokenNotifyPushMsg(platform Platform, title string, content string, tokens ...string) IPushMsg
NewTokenNotifyPushMsg 基于token的notify类型的推送
func NewTokenPushMsg ¶
func NewTokenPushMsg(platform Platform, msgType MessageType, title string, content string, tokens ...string) IPushMsg
NewTokenPushMsg 新建token类型的
type Message ¶
type Message struct { Title string `json:"title,omitempty"` Content string `json:"content,omitempty"` AcceptTime []string `json:"accept_time,omitempty"` //Android推送的参数 Android *AndroidParams `json:"android,omitempty"` //IOS推送的参数 IOS *IOSParams `json:"ios,omitempty"` }
Message 消息体
type MessageType ¶
type MessageType string
MessageType push API message_type参数
const ( // MessageTypeOfNotify 消息类型为通知栏消息 MessageTypeOfNotify MessageType = "notify" // MessageTypeOfMsg 消息类型为透传消息(android)/静默消息(iOS) MessageTypeOfMsg MessageType = "message" )
type PushMsg ¶
type PushMsg struct { //AudienceType 受众类型,见AudienceType类型 AudienceType `json:"audience_type"` //Platform 推送平台,见Platform类型 Platform `json:"platform"` //Message 消息内容 Message `json:"message"` //MessageType 消息类型,见MessageType类型 MessageType `json:"message_type"` //TagList 当AudienceType == AdTag时必填 TagList *TagList `json:"tag_list,omitempty"` /*TokenList 当AudienceType == AdToken 或 AdTokenList 时必填的参数, 当AdToken时即使传了多个token,也只有第一个会被推送 当AdTokenList时,最多支持1000个token,同时push_id第一次请求时必须填0 系统会返回一个push_id = 123(例),后续推送如果push_id填写123(例) 则会使用跟123相同的文案推送*/ TokenList []string `json:"token_list,omitempty"` //AccountList 当AudienceType == AudienceTypeAccount 或 AdAccountList 时必填的参数, // 当AdAccount时即使传了多个token,也只有第一个会被推送 // 当AdAccountList时,最多支持1000个token,同时push_id第一次请求时必须填0 // 系统会返回一个push_id = 123(例),后续推送如果push_id填写123(例) //AccountList 则会使用跟123相同的文案推送 AccountList []string `json:"account_list,omitempty"` //ExpireTime 消息离线存储时间(单位为秒) // 最长存储时间3天,若设置为0,则默认值(3天) // 建议取值区间[600, 86400x3] //ExpireTime 第三方通道离线保存消息不同厂商标准不同 ExpireTime int `json:"expire_time,omitempty"` //SendTime 指定推送时间 // 格式为yyyy-MM-DD HH:MM:SS // 若小于服务器当前时间,则会立即推送 //SendTime 仅全量推送和标签推送支持此字段 SendTime string `json:"send_time,omitempty"` //MultiPkg 多包名推送 //MultiPkg 当app存在多个不同渠道包(例如应用宝、豌豆荚等),推送时如果是希望手机上安装任何一个渠道的app都能收到消息那么该值需要设置为true MultiPkg bool `json:"multi_pkg,omitempty"` //LoopTimes 循环任务重复次数 // 仅支持全推、标签推 //LoopTimes 建议取值[1, 15] LoopTimes int `json:"loop_times,omitempty"` //Environment 用户指定推送环境,仅限iOS平台推送使用 // product: 推送生产环境 //Environment dev: 推送开发环境 Environment CommonRspEnv `json:"environment,omitempty"` //StatTag 统计标签,用于聚合统计 // 使用场景(示例): // 现在有一个活动id:active_picture_123,需要给10000个设备通过单推接口(或者列表推送等推送形式)下发消息,同时设置该字段为active_picture_123 //StatTag 推送完成之后可以使用v3统计查询接口,根据该标签active_picture_123 查询这10000个设备的实发、抵达、展示、点击数据 StatTag string `json:"stat_tag,omitempty"` //Seq 接口调用时,在应答包中信鸽会回射该字段,可用于异步请求 //Seq 使用场景:异步服务中可以通过该字段找到server端返回的对应应答包 Seq int64 `json:"seq,omitempty"` //AccountType 单账号推送时可选 // 账号类型,参考后面账号说明。 //AccountType 必须与账号绑定时设定的账号类型一致 AccountType int `json:"account_type,omitempty"` //PushID // 账号列表推送、设备列表推送时必需 // 账号列表推送和设备列表推送时,第一次推送该值填0,系统会创建对应的推送任务, // 并且返回对应的pushid:123,后续推送push_id 填123(同一个文案) // 表示使用与123 id 对应的文案进行推送。(注:文案的有效时间由前面的expire_time 字段决定) PushID string `json:"push_id,omitempty"` // contains filtered or unexported fields }
PushMsg 推送的消息体
func (*PushMsg) RenderOptions ¶
func (rst *PushMsg) RenderOptions(opts ...PushMsgOption) error
RenderOptions 使用Option来动态修改PushMsg的内容
type PushMsgOption ¶
PushMsgOption Option函数的原型
func OptionAccountListAdd ¶
func OptionAccountListAdd(a string) PushMsgOption
OptionAccountListAdd 的注释
func OptionAddAction ¶
func OptionAddAction(k string, v interface{}) PushMsgOption
OptionAddAction 的注释
func OptionAndroidParams ¶
func OptionAndroidParams(params *AndroidParams) PushMsgOption
OptionAndroidParams 设置AndroidParams
func OptionApsCategory ¶
func OptionApsCategory(category string) PushMsgOption
OptionApsCategory 设置属性
func OptionApsContentAvailable ¶
func OptionApsContentAvailable(contentAvailable int) PushMsgOption
OptionApsContentAvailable 设置属性
func OptionApsThreadId ¶
func OptionApsThreadId(threadId string) PushMsgOption
OptionApsThreadId 设置属性
func OptionCustomContent ¶
func OptionCustomContent(ct map[string]string) PushMsgOption
OptionCustomContent 的注释
func OptionCustomContentSet ¶
func OptionCustomContentSet(k, v string) PushMsgOption
OptionCustomContentSet 的注释
func OptionIOSParams ¶
func OptionIOSParams(params *IOSParams) PushMsgOption
OptionIOSParams 设置IOSParams
func OptionTagList ¶
func OptionTagList(op TagOperation, tags ...string) PushMsgOption
OptionTagList 的注释
type TagList ¶
type TagList struct { //Tags 标签 Tags []string `json:"tags"` //TagOperation 标签逻辑操作符 TagOperation `json:"op"` }
TagList 标签推送参数
type TagOperation ¶
type TagOperation string
TagOperation 标签推送参数的逻辑操作符
const ( // TagOperationAnd 推送tag1且tag2 TagOperationAnd TagOperation = "AND" // TagOperationOr 推送tag1或tag2 TagOperationOr TagOperation = "OR" )
type XgClient ¶
type XgClient struct {
// contains filtered or unexported fields
}
XgClient 用来推送消息,或者设置Tag的信鸽客户端
func NewXingeClient ¶
NewXingeClient 构建一个完整的XgClient对象
func NewXingeClientent2 ¶
NewXingeClientent2 构建一个单平台的XgClient对象
func (XgClient) MarshalResp ¶
MarshalResp 解析返回
func (XgClient) PushWithAuthorization ¶
PushWithAuthorization 使用自定义的Authorization信息进行推送
func (*XgClient) SetAndroidAuth ¶
SetAndroidAuth 设置默认的Android平台推送鉴权