1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
|
package push
import (
"net/http"
"github.com/denverdino/aliyungo/common"
)
const (
PushTargetDevice = "DEVICE"
PushTargetAccount = "ACCOUNT"
PushTargetAlias = "ALIAS"
PushTargetTag = "TAG"
PushTargetAll = "ALL"
PushDeviceTypeIOS = "iOS"
PushDeviceTypeAndroid = "ANDROID"
PushDeviceTypeAll = "ALL"
PushTypeMessage = "MESSAGE"
PushTypeNotice = "NOTICE"
PushIOSAPNENVProduct = "PRODUCT"
PushIOSAPNENVDevelopment = "DEV"
)
//高级推送参数
type PushArgs struct {
/*----基础参数----*/
//AppKey信息
AppKey int64
/*----推送目标----*/
//推送目标
Target string
//根据Target来设定,多个值使用逗号分隔,最多支持100个。
TargetValue string
//设备类型
DeviceType string
/*----推送配置----*/
PushType string
//Android消息标题,Android通知标题,iOS消息标题
Title string
//Android消息内容,Android通知内容,iOS消息内容
Body string
//[iOS通知内容]
Summary string
/*----下述配置仅作用于iOS通知任务----*/
//[iOS通知声音]
IOSMusic string `ArgName:"iOSMusic"`
//[iOS应用图标右上角角标]
IOSBadge int `ArgName:"iOSBadge"`
//[iOS通知标题(iOS 10+通知显示标题]
IOSTitle string `ArgName:"iOSTitle"`
//[开启iOS静默通知]
IOSSilentNotification string `ArgName:"iOSSilentNotification"`
//[iOS通知副标题(iOS 10+)]
IOSSubtitle string `ArgName:"iOSSubtitle"`
//[设定iOS通知Category(iOS 10+)]
IOSNotificationCategory string `ArgName:"iOSNotificationCategory"`
//[是否使能iOS通知扩展处理(iOS 10+)]
IOSMutableContent string `ArgName:"iOSMutableContent"`
//[iOS通知的扩展属性]
IOSExtParameters string `ArgName:"iOSExtParameters"`
//[环境信息]
IOSApnsEnv string `ArgName:"iOSApnsEnv"`
//[推送时设备不在线则这条推送会做为通知]
IOSRemind bool `ArgName:"iOSRemind"`
//[iOS消息转通知时使用的iOS通知内容]
IOSRemindBody string `ArgName:"iOSRemindBody"`
/*----下述配置仅作用于Android通知任务----*/
//[Android通知声音]
AndroidMusic string
//[点击通知后动作]
AndroidOpenType string
//通知的提醒方式
AndroidNotifyType string
//[设定通知打开的activity]
AndroidActivity string
//[Android收到推送后打开对应的url]
AndroidOpenUrl string
//[Android自定义通知栏样式]
AndroidNotificationBarType int
//[Android通知在通知栏展示时排列位置的优先级]
AndroidNotificationBarPriority int
//[Android NotificationChannel 参数,兼容 8.0 系统]
AndroidNotificationChannel string
//[设定通知的扩展属性]
AndroidExtParameters string
/*----下述配置仅作用于Android辅助弹窗功能----*/
//[推送类型为消息时设备不在线,则这条推送会使用辅助弹窗功能]
AndroidRemind bool
//[此处指定通知点击后跳转的Activity]
AndroidPopupActivity string
//[辅助弹窗模式下Title内容,长度限制:<16字符(中英文都以一个字符计算)]
AndroidPopupTitle string
//[辅助弹窗模式下Body内容,长度限制:<128字符(中英文都以一个字符计算)]
AndroidPopupBody string
/*----推送控制----*/
//[用于定时发送]
PushTime string
//[离线消息/通知是否保存]
StoreOffline string
//[离线消息/通知的过期时间]
ExpireTime string
/*----短信融合----*/
//补发短信的模板名
SmsTemplateName string
//补发短信的签名
SmsSignName string
//短信模板的变量名值对
SmsParams string
//触发短信的延迟时间,秒
SmsDelaySecs int
//触发短信的条件
SmsSendPolicy int
}
type PushResponse struct {
common.Response
MessageId string
}
func (this *Client) Push(args *PushArgs) (*PushResponse, error) {
resp := PushResponse{}
return &resp, this.InvokeByAnyMethod(http.MethodPost, Push, "", args, &resp)
}
|