服务端API接口介绍
API 调用签名规则
本文档中所有请求ChatGame服务端 API 接口的请求均使用此规则校验,以下不再重复说明。
每次请求 API 接口时,均需要提供以下 HTTP Request Header,具体如下:
获取ChatGame开放平台为App用户分配的userId和sessionId
- 请求url: /api/platform/user/session/auth
- 请求方式: GET
- 请求参数
- app_user_id(必填):App用户在App服务器中的唯一标识
- app_user_nick_name :App用户在App应用中的昵称,ChatGame开放平台在推送push消息需要使用
- 响应
{ "error_code": 2000, "user":{"session_id":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","id":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"} }
获取ChatGame开放平台为App用户分配的sessionId
- 请求url: /api/platform/user/session/authByUserId
- 请求方式: GET
- 请求参数
- user_id(必填):ChatGame开发平台为App应用分配的userId
- 响应
{ "error_code": 2000, "user":{"session_id":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","id":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"} }
更新App应用用户的昵称
- 请求URL /api/platform/user/update
- 请求方式:POST
- 请求参数
- nick_name(必填):App用户在App应用中的昵称,ChatGame开放平台在推送push消息时需要使用
- 响应
{ "error_code": 2000 }
用户登出接口
- 请求URL /api/user/logout
- 请求方式:GET
- 请求参数:无
- 响应
{ "error_code":401, "error": "账户未登陆" }
{ "error_code": 2000 }
拉取离线消息
- 请求URL /api/user/message/msg_snap
- 请求方式:GET
- 请求参数
- last_message_id(必填):最后拉取消息的ID 初次可以填0
- length(可选):读取条数 默认20条
- 响应
{ "error_code":401, "error": "账户未登陆" }
{ "messages": [ { "id": 67, "content": "你好", "type": "TEXT", //文本 图片 语音 系统 "create_time": 1394617606389, "sender": "f9253f90a8e211e3882863fbf5d6fe5b", "receiver_type": "", //用户还是群组 "conversation_id": "f9253f90a8e211e3882863fbf5d6fe5b",//会话ID "meta":{"entity_format":0,"cmsgid":"ffc820ab2ba24c1d9e257a6cebb0c7a30015"} }, { "id": 67, "content": "你好", "type": "TEXT", //文本 图片 语音 系统 "create_time": 1394617606389, "sender": "f9253f90a8e211e3882863fbf5d6fe5b", "receiver_type": "", //用户还是群组 "conversation_id": "f9253f90a8e211e3882863fbf5d6fe5b",//会话ID "meta":{"entity_format":0,"cmsgid":"ffc820ab2ba24c1d9e257a6cebb0c7a30016"} }, { "id": 1015, "type": "SYSTEM_NOTIFY", "conversation_id": "88888888888888888888888888888888", "create_time": 1397184857620, "sender": "88888888888888888888888888888888", "receiver_type": 1, "receiver": "92ba8e90c12411e3a72763fbf5d6fe5b", "secret": 0, "content": "eyJ0eXBlIjoidXNlcl9yZWdpc3RlciIsImluZm8iOnsidXNlQ==" "meta":{"entity_format":0,"cmsgid":"ffc820ab2ba24c1d9e257a6cebb0c7a30017"} }, { "id" : 5891460084483379200, "type" : "VIDEO_CALL", "conversation_id" : "e763ac40d03511e3bbf113abbfd80b2e", "create_time" : 1404633542178, "sender" : "e763ac40d03511e3bbf113abbfd80b2e", "receiver_type" : 1, "receiver" : "d663f1e0d04211e3a25f13abbfd80b2e", "secret" : 0, "content" : "", "room_id":"call_4627f67cfb33491b93d0e30a7624627f67cfb33491b93d0e30a762c2fb5" }, { "id" : 5891880836961554432, "type" : "AUDIO_CALL", "conversation_id" : "0ddc4310d08a11e39bc3abf93b119073", "create_time" : 1404733857385, "sender" : "0ddc4310d08a11e39bc3abf93b119073", "receiver_type" : 1, "receiver" : "2cdfcdf0d11511e39bc3abf93b119073", "secret" : 0, "content" : "", "room_id":"call_4627f67cfb33491b93d0e30a7624627f67cfb334111193d0e30a762c2fb" } ] } meta字段对消息附加属性的说明 entity_format 0: 表示普通的消息 1:表示富媒体消息 cmsgid:表示客户端生成的消息唯一标示
获取可用的TCP服务器、文件服务器
- 请求URL /api/server/addr
- 请求方式:GET
- 请求参数:无
- 响应
{ "error_code":401, "error": "账户未登陆" }
{ "tcp_server": [ "192.168.1.232:7000", "192.168.1.232:7000" ], "file_server": [ "https://api.chatgame.me" ] }
添加用户灰名单 黑名单置顶
- 请求URL /api/user/conversation/remove
- 请求方式:GET
- 请求参数
- entity_id(必填):群组ID或者用户ID
- type(必填):1:grey 2:black 4:top 8:star
- 响应
{ "error_code":401, "error": "账户未登陆" }
{ "error_code": 4001, "error": "缺少参数" }
{ "error_code": 2000 }
移除用户灰名单 黑名单 置顶
- 请求URL /api/user/conversation/remove
- 请求方式:GET
- 请求参数
- entity_id(必填):群组ID或者用户ID
- type(必填):1:grey 2:black 4:top 8:star
- 响应
{ "error_code":401, "error": "账户未登陆" }
{ "error_code": 4001, "error": "缺少参数" }
{ "error_code": 2000 }
创建群组
- 请求URL /api/platform/group/create
- 请求方式:POST
- 请求参数
- member(必填):创建时邀请加入群组的人,用逗号隔开
- name:群名称
- desc:群描述
- 响应
{ "error_code":401, "error": "账户未登陆" }
{ "error_code": 4001, "error": "缺少参数" }
{ "error_code": 4042, "error":"群组成员数超过限制" }
//包含群成员具体信息 { "id": "2d9384c03dbb11e69860d7e34c9bca74", "creator": "d67bae603dba11e69860d7e34c9bca74", "createTime": 1467178481420, "updateTime": 1467179440035, "desc": "desc123", "name": "groupTest", "number": 3, "members": [ { "id": "038cda003dbb11e69860d7e34c9bca74", "nickname": "jack", "createTime": 1467178410923, }, { "id": "d67bae603dba11e69860d7e34c9bca74", "nickname": "nick", "createTime": 1467178335355, }, { "id": "ec9d6c103dba11e69860d7e34c9bca74", "nickname": "tom", "createTime": 1467178372442, } ], "conversation": 0 }
更新群组
- 请求URL /api/platform/group/update
- 请求方式:POST
- 请求参数
- groupId(必填):群组id
- name:群名称
- desc:群描述
- no_disturb: 群组的个人设置,‘yes’为设置为免打扰
- top: 群组的个人设置,‘yes’为设置为置顶
- 响应
{ "error_code":401, "error": "账户未登陆" }
{ "error_code": 4001, "error": "缺少参数" }
{ "error_code": 4019, "error": "群组不存在" }
{ "error_code": 4020, "error": "对不起,您没有权限" }
{ "error_code": 2000, }
获取群组信息
- 请求URL /api/platform/group/get
- 请求方式:POST
- 请求参数
- groupId(必填):群组id
- exclude:是否排除返回属性,如果传member则不返回群组的详细信息
- 响应
{ "error_code":401, "error": "账户未登陆" }
{ "error_code": 4001, "error": "缺少参数" }
{ "error_code": 4019, "error": "群组不存在" }
{ "error_code": 4020, "error": "对不起,您没有权限" }
//包含群成员具体信息 { "id": "2d9384c03dbb11e69860d7e34c9bca74", "creator": "d67bae603dba11e69860d7e34c9bca74", "createTime": 1467178481420, "updateTime": 1467179440035, "desc": "desc123", "name": "groupTest", "number": 3, "members": [ { "id": "038cda003dbb11e69860d7e34c9bca74", "nickname": "jack", "createTime": 1467178410923, }, { "id": "d67bae603dba11e69860d7e34c9bca74", "nickname": "nick", "createTime": 1467178335355, }, { "id": "ec9d6c103dba11e69860d7e34c9bca74", "nickname": "tom", "createTime": 1467178372442, } ], "conversation": 0 }
退出群组
- 请求URL /api/platform/group/exit
- 请求方式:POST
- 请求参数
- groupId(必填):群组id
- 响应
{ "error_code":401, "error": "账户未登陆" }
{ "error_code": 4001, "error": "缺少参数" }
{ "error_code": 4019, "error": "群组不存在" }
{ "error_code": 2000, }
邀请加入群组
- 请求URL /api/platform/group/join
- 请求方式:POST
- 请求参数
- groupId(必填):群组id
- member(必填):邀请的成员,用逗号隔开
- 响应
{ "error_code":401, "error": "账户未登陆" }
{ "error_code": 4001, "error": "缺少参数" }
{ "error_code": 4019, "error": "群组不存在" }
{ "error_code": 4020, "error": "对不起,您没有权限" }
{ "error_code": 4042, "error": "超过群组成员限制" }
{ "error_code": 2000, }
将用户从群组中移除
- 请求URL /api/platform/group/remove
- 请求方式:POST
- 请求参数
- groupId(必填):群组id
- member(必填):邀请的成员,用逗号隔开
- 响应
{ "error_code":401, "error": "账户未登陆" }
{ "error_code": 4001, "error": "缺少参数" }
{ "error_code": 4019, "error": "群组不存在" }
{ "error_code": 4020, "error": "对不起,您没有权限" }
{ "error_code": 2000, }