推送消息Rest API

来自ixintui推送文档
跳转至: 导航搜索

本文档已过期,建议使用服务端V2版Rest Api,但本接口文档仍然有效

概述

推送服务简介

推送消息针对ios设备进行推送,包括广播、点播、组播消息的推送。

请求数据包格式

1、URL

ios 推送地址:http://iosmis.ixintui.com:8200/push

2、请求方式

所有的接口仅支持POST请求方式。

3、参数编码

所有请求的参数需要进行UTF-8编码

4、响应编码

所有的响应数据包的格式为json,头部设置为
application/json;charset=utf-8
响应输出内容正常,则result字段为0,否则设置相应的错误码
正确响应示例:

{
	"desc": "OK", 
	"msgid": 51, 
	"result": 0
}

错误响应示例

{
	"desc": "sign not correct", 
	"result": 401
}

常见错误码定义

result decription 备注
400 input error 参数错误
401 sign not correct 签名不正确
500 internal error 服务器内部错误

签名算法

JavaDemo php < 5.4Demo php ≥ 5.4Demo jsDemo Object-c Demo

对输入的json数据的key按字典序排序,json字符串中的json分隔符(,";{}[]等)之间不能留空白
拼接上app的secret_key 求md5签名后放入输入json中的sign字段。
例如:输入参数为{"message": "hello,world", "appkey": 10086}
则sign=md5({"appkey":10086,"message":"hello,world"}your-secret_key)
python示例代码:

# -*- coding: utf-8 -*-
import json
import hashlib
import sys
reload(sys)
sys.setdefaultencoding("utf8")
data = dict()
#这里只是列举了部分参数,如果参数不止这些需要更改data数组,保存data中存储了除sign之外的所有参数
data["message"] = "message 测试"
data["appkey"] = "1245227470"
data["period"]  = 1000
#此处需要替换your_secret_key为应用的secret_key
sign = hashlib.md5(json.dumps(data,separators=(",",":"),ensure_ascii=False, encoding="utf8",sort_keys=True) + "your_secret_key").hexdigest()
print sign
data["sign"] = sign
input_json = json.dumps(data,separators=(",",":"),ensure_ascii=False, encoding="utf8",sort_keys=True)
print input_json

IOS MIS API列表

api列表包括注册token,删除token, 推送广播消息、组播消息。
广播消息无需带token列表, 组播消息需要携带token列表。
假设应用appkey = 1618596409
secret_key = XJbwxEbBme1hnEZ0rTfqJBPBiAZ4JQgor5CckFXUiVKBulvQx0xqllYbvRj6URvg

注册token接口

Objective-C Demo Swift Demo 参数列表

参数名字 类型 是否必须 描述
appkey string app唯一标识
token string 用户设备唯一标识
sign string 校验码,生成规则和anroid mis一致

调用方式:POST方法

请求示例:

curl -H 'Content-type: application/json' -X POST -d '{"appkey": "1618596409", "token": "6974ac11870e09fa00e2238e8cfafc7d2052e342182f5b57fabca44542b72e1b",
 "sign": "b8ab2e517ee2bc8fc4099142abf1c45a"}' http://iosmis.ixintui.com:8200/register

响应:

{
  "desc": "add token done",
  "result": 0
}

删除token接口

Objective-C Demo Swift Demo

参数列表

参数名字 类型 是否必须 描述
appkey string app唯一标识
token string 用户设备唯一标识
sign string 校验码,生成规则和anroid mis一致

调用方式:DELETE

请求示例:

curl -H 'Content-type: application/json' -X DELETE -d '{"appkey": "1618596409", "token": "6974ac11870e09fa00e2238e8cfafc7d2052e342182f5b57fabca44542b72e1b",
 "sign": "b8ab2e517ee2bc8fc4099142abf1c45a"}'http://iosmis.ixintui.com:8200/register

响应:

{
  "desc": "delete token done",
  "result": 0
}

广播接口

参数列表

参数名字 类型 是否必须 描述
appkey string app唯一标识
sign string 校验码,生成规则和anroid mis一致
message string或字典 消息内容,可以为字典(格式)
period int 消息有效期,单位秒,取值范围[60s,604800s]
badge int icon脚标显示的数字,默认无显示
extra string 附加信息
transparent int 设为1表示透传
content-available int 设为1触发background mode
category string 从IOS8开始支持

请求示例:

curl -H 'Content-type: application/json' -X POST -d '{"appkey": "1618596409", "message": "hello  message", "sign": "a225b913433067d4ceff89bbe1c71efa"}'http://iosmis.ixintui.com:8200/push

响应:

{
  "desc": "send ok", 
  "result": 0
}

组播接口

参数列表

参数名字 类型 是否必须 描述
appkey string app唯一标识
token string 用户设备唯一标识
sign string 校验码,生成规则和anroid mis一致
message string或字典 消息内容,可以为字典(格式)
period int 消息有效期,单位秒,取值范围[60s,604800s]
badge int icon脚标显示的数字,默认无显示
extra string 附加信息
transparent int 设为1表示透传
content-available int 设为1触发background mode
category string 从IOS8开始支持

请求示例:

curl -H 'Content-type: application/json' -X POST -d '{"appkey": "1618596409", "token": ["6974ac11870e09fa00e2238e8cfafc7d2052e342182f5b57fabca43542b72e1a", 
"6974ac11870e09fa00e2238e8cfafc7d2052e342182f5b57fabca44542b72e1b"], "message": "hello  message", "sign": "359aabccd39491215208763d7c1c5b80"}'http://iosmis.ixintui.com:8200/push

响应:

{
  "desc": "send ok",
  "result": 0
}

点播接口

参数列表

参数名字 类型 是否必须 描述
appkey string app唯一标识
token string 用户设备唯一标识
sign string 校验码,生成规则和anroid mis一致
message string或字典 消息内容,可以为字典(格式)
period int 消息有效期,单位秒,取值范围[60s,604800s]
badge int icon脚标显示的数字,默认无显示
category string 从IOS8开始支持

请求示例:

curl -H 'Content-type: application/json' -X POST -d '{"appkey": "1618596409", "token": "6974ac11870e09fa00e2238e8cfafc7d2052e342182f5b57fabca44542b72e1b", 
"message": "hello  message", "sign": "50ade0e5c8d81728dd3260685fdba71c"}'http://iosmis.ixintui.com:8200/push

响应:

{
  "desc": "send ok", 
  "result": 0
}