服务端API接口介绍

API 调用签名规则

本文档中所有请求ChatGame服务端 API 接口的请求均使用此规则校验,以下不再重复说明。

每次请求 API 接口时,均需要提供以下 HTTP Request Header,具体如下:

参数 解释 是否必须
app_key 一个 APP 的唯一标识
nonce 随机数字
signature md5(appsecret+nonce)
client-session 登陆ChatGame开放平台后的session 当调用ChatGame账号认证、或登陆接口时,不需要。 其他情况下需要。

获取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,
}