API接口
目录
- 1. 登陆
- 功能
- 参数
- 返回值
- Jason请求和响应示例
- 2. 创建群组
- 功能
- 参数
- 返回值
- Jason请求和响应示例
- 3. 更新群组
- 功能
- 参数
- 返回值
- Json请求和响应示例
- 4. 推送消息(透传模式)
- 功能
- 参数
- 返回值
- Json请求和响应示例
- 5. 推送消息(组包模式)
- 功能
- 参数
- 返回值
- Jason请求和响应示例
- 6. 查询消息推送统计信息
- 功能
- 参数
- 返回值
- Jason请求和响应示例
- 7. 查询某个Device消息推送详细信息(1个小时延迟)
- 功能
- 参数
- 返回值
- Json请求和响应示例
- 8. 创建推送配置
- 功能
- 参数
- 返回值
- Json请求和响应示例
- 9. 更新推送服务配置
- 功能
- 参数
- 返回值
- Jason请求和响应示例
- 10. 创建邮件服务器配置
- 功能
- 参数
- 返回值
- Json请求和响应示例
- 11. 获取邮件服务器配置
- 功能
- 输入参数
- 返回值
- Json请求和响应示例
- 12. 更新邮件服务器配置
- 功能
- 参数
- 返回值
- Json请求和响应示例
- 13. 删除邮件服务器配置
- 功能
- 输入参数
- 返回值
- Json请求和响应示例
- 14. 发送邮件
- 功能
- 参数
- 返回值
- Json请求和响应示例
- 15. 测试邮件发送
- 功能
- 参数
- 返回值
- Json请求和响应示例
- 16. 查询邮件发送状态
- 功能
- 参数
- 返回值
- Json请求和响应示例
1. 登陆
POST http://[server]:[port]/cps/api/login
功能
登录以获取JWT token
参数
参数名 | 类型 | 必需 | 限制&描述 |
username | String | 是 | |
password | String | 是 |
返回值
名称 | 类型 | 描述 |
token | String | 返回的jwt token |
Jason请求和响应示例
Request Body
{
"username":"user1",
"password":"password1"
}
Response Body
{
"token":"eyJhbGciOiJIUzUxMiJ9.eyJleHAiOjE0NjM5MTEzNzUsInVzZXJuYW1lIjoiY2hyaXMifQ.c0rxo4sGpeaYUPrPlp903rZiqSrGe4mb0SGiLaZQUIsNFCZbiJWa3Husy1ULYeqhRNQCaXnIDBBz_1Q9rwyA"
}
2. 创建群组
POST http://[server]:[port]/cps/api/groups
功能
创建群组
参数
参数名 | 类型 | 必需 | 限制&描述 |
appId | String | 是 | 40个字符,在NPNS中为应用生成的id |
name | String | 是 | 255个字符 |
description | String | 是 | 255个字符 |
pnsTokens | Array | 否 | 群组中包含的推送token。pnsTokens中的每种类型的Token长度限制不一。APNS/AMDM token长度大于40,NCM Token长度为24 |
返回值
名称 | 类型 | 描述 |
groupUuid | String | 返回的group Uuid |
Jason请求和响应示例
Request Body
{
"name":"group name",
"appId":"121412",
"description": "group description",
"pnsTokens": [
{"type:"NCM","token":"14CDEF264DE8E426EA697851"},
{"type":"APNS","token":"1234567890123456789012345678901234567890123456789012345678901234"}
]
}
Response Body
{
"groupUuid": "3737fdbf-3104-4d4e-bc52-e45d53c7fadd"
}
3. 更新群组
PUT http://[server]:[port]/cps/api/groups/{groupUuid}
功能
更新群组
参数
参数名 | 类型 | 必需 | 限制&描述 |
groupUuid | String | 是 | 255个字符 |
pnsTokens | Array | 否 | pnsTokens中的每种类型的Token长度限制不一。APNS token长度大于40,NCM Token长度为24 |
返回值
若成功操作,无返回值
Json请求和响应示例
Request Body
{
"pnsTokens": [
{"type:"NCM","token":"14CDEF264DE8E426EA697851"},
{"type":"APNS","token":"1234567890123456789012345678901234567890123456789012345678901234"}
]
}
4. 推送消息(透传模式)
POST http://[server]:[port]/cps/api/notifications/{appId}
功能
发送消息
参数
参数名 | 类型 | 必需 | 限制&描述 |
appId | String | 是 | 40个字符,在NPNS中为应用生成的id |
notificationType | String | 是 | BY_TOKEN:按token推送;BY_GROUP:按组推送 |
payload | String | 是 | 对于NCM推送,payload长度最大500字节,APNS最大长度2K |
groupUuid | String | 否 | 调用创建group API创建的group uuid |
pnsTokens | Array | 否 | 群组中包含的推送token。pnsTokens中的每种类型的Token长度限制不一。APNS/AMDM token长度大于40,NCM Token长度为24 |
expire | Number | 否 | 默认为0,NCM推送有效;0:永不过期 N:N分钟后过期 |
retry | Boolean | 否 | 默认为false,不重试,NCM推送有效 |
priority | Number | 否 | 默认为0,NCM推送有效 |
refresh | Boolean | 否 | 默认为false,NCM推送有效;True:该指令将覆盖以前尚未执行的消息,即只发送该消息,之前的尚未执行的消息被丢弃。 |
返回值
名称 | 类型 | 描述 |
notificationId | String | 返回的notification id |
Json请求和响应示例
Request Body
{
"notificationType": "BY_TOKEN"
"pnsTokens": [
{"type":"NCM","token":"14CDEF264DE8E426EA697851"},
{"type":"APNS","token":"1234567890123456789012345678901234567890123456789012345678901234"},
{"type":"AMDM","token":"1234567890123456789012345678901234567890123456789012345678901234","extension":"pushMagic"}
]
"payload": "{"aps" : {"content-available": 1, "alert" : "给您播放了一段铃音", "sound" : "sound.caf"},"cmd" : ["1"], "flownum":"71d32576-6f68-41b4-9ae4-67c8fd8117bc"}",
"priority": 1,
"retry":true,
"refresh":false,
"expire":8
}
//broadcast by groupUuid
{
"notificationType": "BY_GROUP"
"groupUuid": "71d32576-6f68-41b4-9ae4-67c8fd8117bc"
"payload": "{"aps" : {"content-available": 1, "alert" : "给您播放了一段铃音", "sound" : "sound.caf"},"cmd" : ["1"], "flownum":"71d32576-6f68-41b4-9ae4-67c8fd8117bc"}",
}
Response Body
{
"notificationId": 123
}
5. 推送消息(组包模式)
POST http://[server]:[port]/cps/api/notifications/app/{appId}
功能
该功能提供app组包功能,组好APNS和NCM包后将消息发送给设备。
由于APNS限制,expire,retry,priority和refresh字段对于IOS设备不生效。
参数
参数名 | 类型 | 必需 | 限制&描述 |
appId | String | 是 | 40个字符,在NPNS中为应用生成的id |
notificationType | String | 是 | BY_TOKEN:按token推送;BY_GROUP:按组推送 |
groupUuid | String | 否 | 调用创建group API创建的group uuid |
pnsTokens | Array | 否 | 群组中包含的推送token。pnsTokens中的每种类型的Token长度限制不一,APNS/AMDM token长度大于40,NCM Token长度为24 |
expire | Number | 否 | 默认为0,NCM推送有效;0:永不过期 N:N分钟后过期 |
retry | Boolean | 否 | 默认为false,不重试,NCM推送有效 |
priority | Number | 否 | 默认为0,NCM推送有效 |
refresh | Boolean | 否 | 默认为false,NCM推送有效True:该指令将覆盖以前尚未执行的消息,即只发送该消息,之前的尚未执行的消息被丢弃。 |
message | String | 是 | 发送的消息 |
silentAlert | Boolean | 否 | 是否需要弹框提示 |
sound | String | 否 | 是否需要发声,若需要发声,传递sound字符 |
badge | Number | 否 | Badge number |
extensionPayload | Object | 否 | 扩展字段 |
返回值
名称 | 类型 | 描述 |
notificationId | String | 返回的notification id |
Jason请求和响应示例
Request Body
按token发送
{
"notificationType": "BY_TOKEN",
"pnsTokens": [
{"type":"NCM","token":"14CDEF264DE8E426EA697851"},
{"type":"APNS","token":"1234567890123456789012345678901234567890123456789012345678901234"},
{"type":"AMDM","token":"1234567890123456789012345678901234567890123456789012345678901234","extension":"pushMagic"}
]
"message": "message 1",
"silentAlert": true,
"sound":"default",
"badge": 1
"extensionPayload":{
"field1": "value1",
"field2": "value2"
}
}
按组发送
{
"notificationType": "BY_GROUP",
"groupUuid": "71d32576-6f68-41b4-9ae4-67c8fd8117bc",
"message": "message 1",
"silentAlert": true,
"sound": "default",
"badge": 1,
"extensionPayload":{
"field1": "value1",
"field2": "value2"
}
}
Response Body
{
"notificationId": 123
}
6. 查询消息推送统计信息
GET http://[server]:[port]/cps/api/notifications/{notificationId }
功能
查询消息推送统计信息
参数
参数名 | 类型 | 必需 | 限制&描述 |
notificationId | String | 是 | 发送消息时CPS返回的id |
返回值
名称 | 类型 | 描述 |
totalNumber | Number | 本次推送的推送device总数 |
toPnNumber | Number | 到达PN的device数 |
failedNumber | Number | 失败的device数 |
Jason请求和响应示例
Request
GET http://[server]:[port]/cps/api/notifications/{notificationId}
Response Body
{
"totalNumber":20,
"toPnNumber":10,
"failedNumber":10
}
7. 查询某个Device消息推送详细信息(1个小时延迟)
GET http://[server]:[port]/cps/api/notifications/{notificationId }/{pnsToken}
功能
查询消息推送统计信息
参数
参数 | 类型 | 必需 | 限制&描述 |
notificationId | String | 是 | 发送消息时CPS返回的id |
pnsToken | String | 是 | Device所属的APNS或NCM token |
返回值
名称 | 类型 | 描述 |
Status | String | TO_PN, DELIVERED, INVALID |
Json请求和响应示例
Request
GET http://[server]:[port]/cps/api/notifications/{notificationId}/{pnsToken}
Response Body
{
"status":"TO_PN"
}
8. 创建推送配置
POST http://[server]:[port]/cps/api/admin/config/{appId}
功能
创建推送配置
参数
参数名 | 类型 | 必需 | 限制&描述 |
appId | String | 是 | 40个字符,在NPNS中为应用生成的id |
type | String | 是 | APNS、AMDM或者NCM,其他字符返回错误 |
configInfo | Object | 否 | 当Type为APNS和AMDM时,不能为空 |
cert | String | 是 | Base64的APNS/AMDM 证书字符串 |
certFileName | String | 是 | 导出的p12文件名 |
certPassword | String | 是 | 导出p12文件时的密码 |
production | Boolean | 否 | 默认为true |
返回值
名称 | 类型 | 描述 |
configUuid | String | 返回的config Uuid |
Json请求和响应示例
Request Body
{
"type": "NCM",
"configInfo":{}
}
{
"type": "APNS",
"configInfo":{
"cert":"base64 cert file content",
"certFileName":"emm.p12",
"certPassword": "password when exported the emm.p12 cert",
"production":true
}
}
{
"type": "AMDM",
"configInfo":{
"cert":"base64 cert file content",
"certFileName":"mdm.p12",
"certPassword": "password when exported the mdm.p12 cert",
"production":true
}
}
Response Body
{
"configUuid": "xxxxxxxx-xxxx-xxxx-xxxx"
}
9. 更新推送服务配置
PUT http://[server]:[port]/cps/api/admin/config/{appId}/{configUuid}
功能
更新群组
参数
参数名 | 类型 | 必需 | 限制&描述 |
appId | String | 是 | 40个字符,在NPNS中为应用生成的id |
configUuid | String | 是 | 调用创建config API时返回的configUuid |
type | String | 是 | APNS、AMDM或者NCM,其他字符返回错误 |
configInfo | Object | 否 | 当Type为APNS和AMDM时,不能为空 |
cert | String | 是 | Base64的APNS/AMDM 证书字符串 |
certFileName | String | 是 | 导出的p12文件名 |
certPassword | String | 是 | 导出p12文件时的密码 |
production | Boolean | 否 | 默认为true |
返回值
若成功操作,无返回值
Jason请求和响应示例
Request Body
{
"type": "NCM",
"configInfo":{}
}
{
"type": "APNS",
"configInfo":{
"cert":"base64 cert file content",
"certFileName":"emm.p12",
"certPassword": "password when exported the emm.p12 cert",
"production":true
}
}
{
"type": "AMDM",
"configInfo":{
"cert":"base64 cert file content",
"certFileName":"mdm.p12",
"certPassword": "password when exported the mdm.p12 cert",
"production":true
}
}
Response Body
无响应内容
10. 创建邮件服务器配置
POST http://[server]:[port]/cps/api/mailConfig
功能
设置MAIL服务器配置信息,用户可以设置多个MAIL,调用该API成功后会得到一个唯一标识featureId,用户用featureId来区分不同的邮箱配置及发消息
参数
参数名 | 类型 | 必需 | 限制&描述 |
serverAddress | String | 是 | 邮箱服务器 |
serverPort | String | 否 | SMTP服务器端口,0-65535,默认为25 |
openSSLFlag | String | 否 | 是否开启SSL,0=不开启 1=开启 |
displayName | String | 否 | 发件人名称 |
userName | String | 是 | 邮箱帐号 |
password | String | 否 | 邮箱密码 |
sslType | String | 否 | 0|1 0=SSL 1=TLS |
返回值
名称 | 类型 | 描述 |
featureId | String | 返回的feature Uuid |
Json请求和响应示例
Request Body
Content-Type:application/json;charset=UTF-8
{
"serverAddress": "smtp.netqin.com",
"serverPort": "25",
"openSSLFlag": "0",
"displayName": "zhangjianshe@nationsky.com",
"userName": "zhangjianshe@nationsky.com",
"password": "123456",
"sslType": "0"
}
Response Body
1.成功
HTTP/1.1 200 OK
{
"featureId":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
2.失败
{
"errorCode": xxx
}
Http Status Code | errorCode | desc |
500 | 114 | 服务器内部错误 |
400 | 109 | 参数值错误 |
104 | 用户不存在 |
11. 获取邮件服务器配置
GET http://[server]:[port]/cps/api/mailConfig/{featureId} featureId,可以不输入
功能
获取MAIL服务器端的配置参数信息
输入参数
名称 | 类型 | 必需 | 描述&限制 |
featureId | String | 否 | 配置的ID |
返回值
参数名 | 类型 | 描述 |
serverAddress | String | 邮箱服务器 |
serverPort | String | SMTP服务器端口,0-65535 |
openSSLFlag | String | 是否开启SSL,0=不开启 1=开启 |
displayName | String | 发件人名称 |
userName | String | 邮箱帐号 |
password | String | 邮箱密码 |
sslType | String | 0|1 0=SSL 1=TLS |
featureId | String | 配置的ID |
Json请求和响应示例
Request
GET http://[server]:[port]/cps/api/mailConfig/{featureId}
Response Body
{
"data": [
{
"serverAddress": "smtp.partner.outlook.cn",
"serverPort": "587",
"openSSLFlag": "1",
"displayName": "国信灵通-1",
"userName": "zhangjianshe@nationsky.com",
"password": "Nora8381",
"sslType": "0"
},
{
"serverAddress": "smtp.partner.outlook.cn",
"serverPort": "587",
"openSSLFlag": "1",
"displayName": "国信灵通-1",
"userName": "zhangjianshe@nationsky.com",
"password": "Nora8381",
"sslType": "0"
}
]
}
2.失败
{
"errorCode": xxx
}
Http Status Code | errorCode | desc |
500 | 114 | 服务器内部错误 |
400 | 104 | 用户不存在 |
128 | featureId不存在 |
12. 更新邮件服务器配置
PUT http://[server]:[port]/cps/api/mailConfig
功能
更新MAIL服务器端的配置参数信息
参数
参数名 | 类型 | 必需 | 限制&描述 |
serverAddress | String | 是 | 邮箱服务器 |
serverPort | String | 否 | SMTP服务器端口,0-65535,默认为25 |
openSSLFlag | String | 否 | 是否开启SSL,0=不开启 1=开启 |
displayName | String | 否 | 发件人名称 |
userName | String | 是 | 邮箱帐号 |
password | String | 否 | 邮箱密码 |
sslType | String | 否 | 0|1 0=SSL 1=TLS |
若用户输入featureId,会更新此featureId对应的mail配置信息。
若用户不输入featureId,会判断此用户保存了几个配置信息:
- 如果大于1,返回配置大于1的错误;
- 如果用户配置信息小于1,返回配置信息小于1错误;
- 如果等于1,更新此条信息的配置信息
返回值
无
Json请求和响应示例
Request Body
PUT http://[server]:[port]/cps/api/mailConfig/{featureId}
PUT http://[server]:[port]/cps/api/mailConfig
Content-Type:application/json;charset=UTF-8
{
"serverAddress": "smtp.netqin.com",
"serverPort": "25",
"openSSLFlag": "0",
"displayName": "zhangjianshe@nationsky.com",
"userName": "zhangjianshe@nationsky.com",
"password": "123456",
"sslType": "0"
}
Response Body
1.成功
HTTP/1.1 200 OK
2.失败
{
"errorCode": xxx
}
Http Status Code | errorCode | desc |
500 | 114 | 服务器内部错误 |
400 | 109 | 参数值错误 |
104 | 用户不存在 | |
126 | MAIL配置信息多于一个 | |
127 | MAIL配置信息小于一个 | |
128 | featureId不存在 |
13. 删除邮件服务器配置
DELETE http://[server]:[port]/cps/api/mailConfig/{featureId} featureId,可以不输入
功能
删除MAIL服务器端的配置
输入参数
名称 | 类型 | 必需 | 描述&限制 |
featureId | String | 否 | 配置的ID |
若用户输入featureId,会删除此featureId对应的mail配置信息。
若用户不输入featureId,会判断此用户保存了几个配置信息:
- 如果大于1,返回配置大于1的错误;
- 如果用户配置信息小于1,返回配置信息小于1错误;
- 如果等于1,删除此条信息的配置信息。
返回值
无
Json请求和响应示例
Request
DELETE http://[server]:[port]/cps/api/mailConfig/{featureId}
Response Body
HTTP/1.1 200 OK
2.失败
{
"errorCode": xxx
}
Http Status Code | errorCode | desc |
500 | 114 | 服务器内部错误 |
400 | 104 | 用户不存在 |
126 | MAIL配置信息多于一个 | |
127 | MAIL配置信息小于一个 | |
128 | featureId不存在 |
14. 发送邮件
POST http://[server]:[port]/cps/api/mails
功能
发送邮件
参数
参数名 | 类型 | 必需 | 限制&描述 |
subject | String | 否 | 主题 |
content | String | 是 | 内容 |
mailTo | Array | 是 | 收件人列表 |
cc | Array | 否 | 抄送列表 |
bcc | Array | 否 | 密送列表 |
featureID | String | 否 | 配置唯一ID。若用户只有一个mail配置,则不需要输入featureID,我们会根据用户来获取mail配置, 只有用户有多个mail配置时才会输入featureID来区分。 |
mode | String | 否 | 发送模式(同步或者异步)0|1 0=SSL 1=TLS。0=同步发送 1=异步发送 如果不填写,默认为0,同步发送。 |
filename | Array | 否 | 文件名 |
fileContent | Array | 否 | 文件内容 |
返回值
名称 | 类型 | 描述 |
taskId | String | 任务Id,异步发送时返回 |
errorCode | Integer | 错误代码 |
Json请求和响应示例
Request Body
Content-Type:application/json;charset=UTF-8
{
"subject": "张建设测试发送邮件",
"content": "发送邮件功能测试成功了",
"mailTo": ["zhangjianshe@nationsky.com","610120505@qq.com"],
"cc": ["610120505@qq.com"],
"bcc": ["610120505@qq.com"],
"fileName":["xxxxx.xxx"],
"fileContent":["xxxxxxxxxxxxxxxx"],
"mode":"0",
"featureId":"fbc62a54-4c92-47b6-a122-3066c280639a"
}
Response Body
1.同步发送成功,mode=0
HTTP/1.1 200 OK
2.异步发送成功,mode=1
HTTP/1.1 200 OK
{
"taskId":"fbc62a54-4c92-47b6-a122-3066c280639a"
}
3.失败
{
"errorCode": xxx
}
Http Status Code | errorCode | desc |
500 | 114 | 服务器内部错误 |
400 | 109 | 参数值错误 |
104 | 用户不存在 | |
125 | 邮件发送失败 | |
126 | MAIL配置信息多于一个 | |
127 | MAIL配置信息小于一个 |
15. 测试邮件发送
POST http://[server]:[port]/cps/api/mails/test
功能
设置MAIL服务器配置信息并测试是否成功发送邮件
参数
参数名 | 类型 | 必需 | 限制&描述 |
serverAddress | String | 是 | 邮箱服务器 |
serverPort | String | 否 | SMTP服务器端口,0-65535,默认为25 |
openSSLFlag | String | 否 | 是否开启SSL,0=不开启 1=开启 |
displayName | String | 否 | 发件人名称 |
userName | String | 是 | 邮箱帐号 |
password | String | 否 | 邮箱密码 |
sslType | String | 否 | 0|1 0=SSL 1=TLS |
subject | String | 否 | 主题 |
content | String | 否 | 内容 |
mailTo | Array | 否 | 收件人列表 |
返回值
名称 | 类型 | 描述 |
taskId | String | 任务Id,异步发送时返回 |
errorCode | Integer | 错误代码 |
Json请求和响应示例
Request Body
Content-Type:application/json;charset=UTF-8
{
"serverAddress": "smtp.netqin.com",
"serverPort": "25",
"openSSLFlag": "0",
"displayName": "zhangjianshe@nationsky.com",
"userName": "zhangjianshe@nationsky.com",
"password": "123456",
"sslType": "0",
"subject":"xxxxxxxxxxxx",
"content":"xxxxxxxxxxxxx",
"mailTo":["xxxx@nationsky.com","xxx@163.com"]
}
Response Body
1.成功
HTTP/1.1 200 OK
2.失败
{
"errorCode": xxx
}
Http Status Code | errorCode | desc |
500 | 114 | 服务器内部错误 |
400 | 109 | 参数值错误 |
124 | 邮件服务器配置错误 |
16. 查询邮件发送状态
GET http://[server]:[port]/cps/api/mails/{taskId}
功能
查询邮件异步发送状态
参数
参数名 | 类型 | 必需 | 限制&描述 |
taskId | String | 是 | 任务ID |
返回值
名称 | 类型 | 描述 |
taskId | String | 任务Id |
Json请求和响应示例
Request
GET http://[server]:[port]/cps/api/mails/{taskId}
Response Body
1.成功
HTTP/1.1 200 OK
{
"fbc62a54-4c92-47b6-a122-3066c280639a":"SENDING"|"SENDSUCCESS"|"SENDFAILURE"
}
2.失败
{
"errorCode": xxx
}
Http Status Code | errorCode | desc |
500 | 114 | 服务器内部错误 |
400 | 104 | 用户不存在 |