代码拉取完成,页面将自动刷新
封装五大安卓厂商,iOS平台PUSH API构建手机消息推送SDK,目的在于减少造轮子,欢迎各位gopher使用&fix
目前支持的手机厂商
安卓:华为,小米,OPPO,vivo,魅族
IOS:支持两种推送模式
register, err := push.NewRegisterClient(push.DefaultConfFile)
if err != nil {
fmt.Printf("NewRegisterClient err: %v", err)
return
}
2.1 从步骤1获取到的注册器获取相应推送平台客户端
iosClient, err := register.GetIosCertClient()
if err != nil {
fmt.Printf("GetIosClient err: %v", err)
return
}
2.3 构造消息推送参数(注意平台差异,华为平台,OPPO平台,vivo平台需要在Message结构里附加AccessToken 值)
var deviceTokens = []string{
"xxxxxxxxxxxxxxxxxx",
}
msg := &setting.PushMessageRequest{
AccessToken:"",
DeviceTokens: deviceTokens,
IsSandBox: true,
Message: &setting.Message{
BusinessId: "a4cc3c24-b3f1-4368-af2a-4c0898ba15e8",
Title: "待办任务提醒",
SubTitle: "您有待办任务哦",
Content: "早上好!新的一天开始了,目前您还有任务需要马上处理~",
Sound: "ios_alarm_sos.mp3",
Badge: 1,
Extra: map[string]string{
"type": "TodoRemind",
"link_type": "TaskList",
"link_params": "[]",
},
CallBack: "https://xxxx.xxx.com.cn/app-push/callback-oppo",
CallbackParam: "",
},
}
2.4 开始消息推送
ctx := context.Background()
respPush, err := iosClient.PushNotice(ctx, msg)
if err != nil {
fmt.Printf("ios push err: %v", err)
return
}
fmt.Printf("ios push resp: %+v", respPush)
支持平台:华为,小米,OPPO,vivo,魅族,iPhone
本机需要配置host
localhost go-push-sdk.com
{
"access_token": "CF0dt1Gt5FDhfF/pUudKCUMphIGxVFxuYaJk3nQnvN2MHJ9MXx+hD0ELpQmNJ6ltPAluBsoVldn34hb2bR8T9w==",
"error": 0,
"error_description": "",
"expires": 3600,
"scope": "",
"success": true
}
参数 | 类型 | 含义 | 是否必填 |
---|---|---|---|
accessToken | string | 接入token | 选填(不传则自动获取) |
deviceTokens | string | 设备token(多个用英文逗号隔开,单次最大100个) | 必填 |
messageBusinessId | string | 消息业务ID | 非必填 |
messageTitle | string | 消息标题 | 必填 |
messageSubTitle | string | 消息副标题 | 非必填 |
messageContent | string | 消息正文 | 必填 |
messageExtraJson | string | 消息附带参数 消息附带参数 键值为string的map序列化结果,如 "{"param1":"value1","param2":"value2"}" | 非必填 |
messageCallBack | string | 消息回调地址 | 非必填 |
messageCallBackParam | string | 消息回调附带参数 | 非必填 |
响应结果:
{
"code": "80000000",
"msg": "Success",
"reason": "",
"requestId": "156222523472361878003501",
"success": true
}
参数 | 类型 | 含义 | 是否必填 |
---|---|---|---|
deviceTokens | string | 设备token(多个用英文逗号隔开,最大1000个) | 必填 |
messageBusinessId | string | 消息业务ID | 非必填 |
messageTitle | string | 消息标题 | 必填 |
messageSubTitle | string | 消息副标题 | 非必填 |
messageContent | string | 消息正文 | 必填 |
messageExtraJson | string | 消息附带参数 消息附带参数 键值为string的map序列化结果,如 "{"param1":"value1","param2":"value2"}" | 非必填 |
messageCallBack | string | 消息回调地址 | 非必填(填了會校驗格式是否正確) |
messageCallBackParam | string | 消息回调附带参数 | 非必填 |
响应结果:
{
"code": "200",
"message": "",
"msgId": "NS20190704153256153_0_11579908_1_3",
"redirect": "",
"success": true,
"value": {
"110002": [
"ULY6c596e6a7d5b714a475a60527c6b5f7f655a6d6370"
]
}
}
参数 | 类型 | 含义 | 是否必填 |
---|---|---|---|
deviceTokens | string | 设备token(多个用英文逗号隔开,最多100个) | 必填 |
messageBusinessId | string | 消息业务ID | 非必填 |
messageTitle | string | 消息标题 | 必填 |
messageSubTitle | string | 消息副标题 | 非必填 |
messageContent | string | 消息正文 | 必填 |
messageExtraJson | string | 消息附带参数 消息附带参数 键值为string的map序列化结果,如 "{"param1":"value1","param2":"value2"}" | 非必填 |
messageCallBack | string | 消息回调地址 | 非必填 |
messageCallBackParam | string | 消息回调附带参数 | 非必填 |
响应结果:
{
"code": 0,
"data": {
"id": "sdm00940562225761669wO"
},
"description": "成功",
"info": "Received push messages for 1 REGID",
"reason": "",
"result": "ok",
"success": true
}
{
"code": 0,
"data": "{\"auth_token\":\"4e85a703-1636-444d-a3a2-c26abb2b1ffb\",\"create_time\":1562207540879}",
"message": "Success",
"success": true
}
参数 | 类型 | 含义 | 是否必填 |
---|---|---|---|
accessToken | string | 接入token | 选填(不传则自动获取) |
deviceTokens | string | 设备token(多个用英文逗号隔开,最大1000个) | 必填 |
messageBusinessId | string | 消息业务ID | 非必填 |
messageTitle | string | 消息标题 | 必填 |
messageSubTitle | string | 消息副标题 | 非必填 |
messageContent | string | 消息正文 | 必填 |
messageExtraJson | string | 消息附带参数 消息附带参数 键值为string的map序列化结果,如 "{"param1":"value1","param2":"value2"}" | 非必填 |
messageCallBack | string | 消息回调地址 | 非必填 |
messageCallBackParam | string | 消息回调附带参数 | 非必填 |
响应结果:
{
"code": 0,
"data": "{\"message_id\":\"\",\"messageId\":\"5d1dad59cac4826aedd7ee4a\",\"status\":\"call_success\",\"task_id\":\"\"}",
"message": "Success",
"success": true
}
{
"auth_token": "aa05871a-dd0b-4ab1-a303-b4e8177fb2e1",
"desc": "请求成功",
"result": 0,
"success": true
}
参数 | 类型 | 含义 | 是否必填 |
---|---|---|---|
accessToken | string | 接入token | 选填(不传则自动获取) |
deviceTokens | string | 设备token(多个用英文逗号隔开,最大1000个) | 必填 |
messageBusinessId | string | 消息业务ID | 必填 |
messageTitle | string | 消息标题 | 必填 |
messageSubTitle | string | 消息副标题 | 非必填 |
messageContent | string | 消息正文 | 必填 |
messageExtraJson | string | 消息附带参数 消息附带参数 键值为string的map序列化结果,如 "{"param1":"value1","param2":"value2"}" | 非必填 |
messageCallBack | string | 消息回调地址 | 非必填 |
messageCallBackParam | string | 消息回调附带参数 | 非必填 |
响应结果: |
{
"desc": "请求成功",
"invalid_users": null,
"request_id": "ab-7h-98-io8",
"result": 0,
"success": true,
"task_id": ""
}
参数 | 类型 | 含义 | 是否必填 |
---|---|---|---|
isSandBox | bool | 是否开启沙盒推送(默认false) | 选填 |
deviceTokens | string | 设备token(多个用英文逗号隔开,最多100个) | 必填 |
messageBusinessId | string | 消息业务ID(注意格式) | 必填 |
messageTitle | string | 消息标题 | 必填 |
messageSubTitle | string | 消息副标题 | 非必填 |
messageContent | string | 消息正文 | 必填 |
messageExtraJson | string | 消息附带参数 消息附带参数 键值为string的map序列化结果,如 "{"param1":"value1","param2":"value2"}" | 非必填 |
messageCallBack | string | 消息回调地址 | 非必填 |
messageCallBackParam | string | 消息回调附带参数 | 非必填 |
响应结果:
{
"ap_ns_id": "62E3A03F-8CE9-56F1-0D1A-2FED55CAF9C6",
"reason": "",
"status_code": 200,
"success": true
}
参数 | 类型 | 含义 | 是否必填 |
---|---|---|---|
isSandBox | bool | 是否开启沙盒推送(默认false) | 选填 |
deviceTokens | string | 设备token(多个用英文逗号隔开,最多100个) | 必填 |
messageBusinessId | string | 消息业务ID(注意格式) | 必填 |
messageTitle | string | 消息标题 | 必填 |
messageSubTitle | string | 消息副标题 | 非必填 |
messageContent | string | 消息正文 | 必填 |
messageExtraJson | string | 消息附带参数 键值为string的map序列化结果,如 "{"param1":"value1","param2":"value2"}" | 非必填 |
messageCallBack | string | 消息回调地址 | 非必填 |
messageCallBackParam | string | 消息回调附带参数 | 非必填 |
响应结果: |
"ap_ns_id": "62E3A03F-8CE9-56F1-0D1A-2FED55CAF9C6",
"reason": "",
"status_code": 200,
"success": true
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。