File: push.go

package info (click to toggle)
golang-github-denverdino-aliyungo 0.0~git20180921.13fa8aa-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye
  • size: 1,824 kB
  • sloc: xml: 1,359; makefile: 3
file content (126 lines) | stat: -rw-r--r-- 3,839 bytes parent folder | download | duplicates (3)
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)
}