签名认证方式
在下面所有接口的请求中加上这些HTTP头:
"Authorization: tis " + AccessId + ":" + Signature
"AD-Expire: expire"
'Content-Type: application/json'
Signature = base64(hmac-sha1(AccessKey,
VERB + "\n"
+ REQUESTURL+"\n"
+ expire + "\n"
+ Content-MD5 + "\n"))
AccessKey表示签名所需的秘钥
VERB表示HTTP 请求的Method,主要有PUT,GET,POST,HEAD,DELETE等
"\n"表示换行符
REQUESTURL 请求的URL 包含请求参数
Content-MD5表示请求内容数据的MD5值
expire表示此次操作的有效期,服务器时间的秒数
获取实例信息
http://api.dms.aodianyun.com/v1/tis/inst/{instId}
METHOD: GET
{instId} 可以从 管理控制台->字互动服务TIS——实例列表 中获取
成功返回
{
"Flag":100,
"subkey":"XXX",
"topic":"XXX",
}
失败时返回状态码400,和错误信息。以下情况类似。
创建实例
http://api.dms.aodianyun.com/v1/tis/inst/auto
METHOD: POST
CONTENT-DATA:
{
"dmsSecKey":"464", //dms服务中的s_key
"auditEnable":0, //可选,默认为0。是否开启消息审核。
"filterType":1, //可选,默认为0。当开启审核时起作用。0:不过滤,1:包含关键字的需要审核,3:包含关键字的直接替换为*
"filterKeys":"shit", //可选,默认为""
"description":"实力1", //可选,默认为"",描述
"groupIds":[20,30] //可选,需要关联的表情组的Id,该表情组必须是已经存在的。
//表情组Id可以在控制台--TIS服务--表情管理--选择一个表情组--查看表情--浏览器地址上的groupId参数中获取
}
成功返回 状态码 200:
{
"Flag":100,
"FlagString":"suc",
"id":"098d1d78a1d9a464de50082eafdb79f8" //刚创建的Id
}
失败时返回状态码400或500
发送消息
http://api.dms.aodianyun.com/v1/tis/words/{instId}/auto
METHOD: POST
CONTENT-DATA:
{
"time": 1453183724160,
"content": "{\"cmd\":\"tismsg\",\"v\":1,\"from\":\"tis-...\",\"name\":\"匿名\",\"to\":\"\",\"body\":\"1\",\"image\":\"images/anonymous.png\",\"time\":1453168978,\"extra\":null}"
}
成功返回:
{
"Flag": 100,
"FlagString":"send msg success"
}
注意:content必须是以上那样的格式,每个字段的解释如下:
{
"cmd":"tismsg", //命令,固定为: tismsg
"v":1, //版本号
"from":"tis-68a3bde381339e6698f902d84c2c9729", //发送者的clientId
"name":"匿名", //发送者名称
"to":"", //发送目标的clientId,""表示发送给所有人,目前只支持发送给所有人。
"body":"1", //发送的内容
"image":"images/anonymous.png", //发送者头像
"time":1453168978, //发送时间
"extra":null //额外数据
}
如果不是按这样的格式可能会影响到客户端的解析。
获取历史消息
http://api.dms.aodianyun.com/v1/tis/words/{instId}/history?skip={skip}&num={num}
METHOD: GET
{instId}:为tis的实例id
成功返回:
{
"Flag": 100,
"list": [
{
"id": 0, //消息id,这里的id是无效值,固定为0
"userId": 4640, //奥点云用户id
"instId": "72a8c28552fa1619c643eab674f3462d", //tis实例id
"time": 1434442796, //消息发送的时间
"state": 1, //消息状态,1代表已发送的消息
"content": "{\"cmd\":\"tismsg\",\"v\":1,\"from\":\"tis-...\",\"name\":\"匿名\",\"to\":\"\",\"body\":\"1\",\"image\":\"images/anonymous.png\",\"time\":1453168978,\"extra\":null}"
}
]
}
获取分组
http://api.dms.aodianyun.com/v1/tis/faceGroups?skip={skip}&num={num}&instId={instId}
METHOD: GET
skip,num:默认为skip=0,num=100
instId: TIS实例Id,如果没有这个参数,则查询用户下分组,而非实例下的分组
成功返回
{
"Flag": 100,
"list": [
{
"id": 1, //分组id,即groupId
"userId": 4640, //奥点云的用户Id
"icon": "http://xxx.png", //表情的图片地址
"name": "自定义1", //分组1
"index": 0, //排序值
"package":0 //表情分组一种是自定义分组,一种是表情包。当分组为表情包时,package不为0
}
],
"total": 1
}
获取表情
http://api.dms.aodianyun.com/v1/tis/faces?&groupId={groupId}skip={skip}&num={num}
根据{groupId}和{skip}、{num}获取表情信息
METHOD: GET
成功返回
{
"Flag": 100,
"list": [
{
"id": 9, //表情Id,即faceId
"userId": 4640, //奥点云的用户Id
"groupId": 1, //所属分组
"text": "哈哈", //表情对应的文字
"index": 0, //排序值
"url": "http://xxx.png" //表情图片的地址
}
],
"total": 1
}
获取表情包信息
http://api.dms.aodianyun.com/v1/tis/packages/{pkgId}
获取分组时返回的package字段为表情包的{pkgId},可以根据这个Id获取这个包的具体信息.
METHOD: GET
成功返回
{
"description": "QQ表情" //表情包描述
"id": 1 //表情包Id
"index": 0 //
"num": 75 //表情数量
"path": "qqface" //表情路径
"subfix": "gif" //表情图片后缀
"time": 1453356669,
"baseUrl": "http://6225.long-vod.cdn.aodianyun.com/mfs/tis/qqface/" //表情基地址,用于拼接表情地址
}
对应的表情地址为:
for (var i = 1; i <= pkg.num; i++) {
表情对应的文字:"[#/" + pkg.path + "/" + i + "]", 比如[#/qqface/1]
表情图片地址: pkg.baseUrl + i + "." + pkg.subfix, 比如http://4640.long-vod.cdn.aodianyun.com/mfs/tis/qqface/1.gif
}
其中pkg为表情包返回的信息