聊天推送接口【必接】

51游戏大约 2 分钟

聊天推送接口【必接】

1.文档记录

编码格式密级
utf-8公开
日期版本修改内容操作人
2021-09-011.0.0文档整理朱明慧

2. 要求说明

​ 聊天内容数据推送接口,聊天推送时采用单条推送,不要批量推送。

3. 请求URL

http://gameapi.51.com/chatlog/monitoropen in new window

4. 请求方式

  POST

5. 请求参数

参数名类型必填说明
sitevarchar(10)Y平台标识,固定为:51game
gamevarchar(6)Y游戏简称,由51提供。一般为游戏名称首字母,如传奇霸业为:cqby
infovarchar(250)Y需要urlencode,见后续info字段描述表
timedatetimeY时间戳
flagvarchar(32)Y加密验证串
sec_chat_accountvarchar(32)N私聊对象的用户名,不参与加密,非私聊传空字符串
sec_chat_role_idvarchar(32)N私聊对象的角色id,不参与加密,非私聊传空字符串
sec_chat_nicknamevarchar(32)N私聊对象的角色名或昵称,不参与加密,非私聊传空字符串
sec_chat_role_levelint(10)N私聊对象的角色等级,不参与加密,非私聊传0

聊天推送时采用单条推送,不要批量推送

flag计算方式: 各个参数键名按照字典升序排列后连接参数值,再末端加上51平台提供的flag_key做md5 针对以上参数,flag计算方式如下:

flag = strtoupper(md5("game${game}" . "info${info}" . "site${site}" . "time${time}" . $flag_key));
参数名类型必填说明
server_idvarchar(36)Y服务器ID,由51平台和厂商商量决定
role_idvarchar(16)Y玩家角色id
role_namevarchar(60)Y玩家角色名
account_namevarchar(30)Y51用户名,同登录接口user
levelint(8)Y玩家等级
goldint(8)Y充值元宝数量(可填0)
ip_addrvarchar(15)Y玩家IP地址
chat_timeint(10)Y聊天时间,数据为时间戳
channelvarchar(60)Y聊天频道
chat_contentvarchar(255)Y聊天内容

上述字段构成post过来的info参数的内容,info参数定义为 info=sever_id SEP role_id SEP …. SEP chat_content\n 其中SEP表示分隔符(建议使用竖线| ),每条info记录后面需要有换行符,且聊天内容里面如果有分割符SEP,需要将其替换成其他的字符(建议替换成*),info需要urlencode PHP代码示例

function doPost($url, $params) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    $data = curl_exec($ch);
    return $data;
}

$url = "http://gameapi.51.com/chatlog/monitor";
$site = "51game";
$game = "cqby";
$time = time();
//其中'|'为分隔符
$info = "S1|1000036|Kevin剑|33303372|70|5000|222.242.107.118|1397274116|行会|是呀,铁我拿了";
$key = 'aiyou123456';
$flag = strtoupper(md5("game$game" . "info$info" . "site$site" . "time$time" . $key));
$param = "game=$game&site=$site&time=$time&info=$info&flag=$flag";
$res = doPost($url, $param);
print $res;

7. 返回数据

返回说明
success接收成功
fail插入失败
1参数不全
2游戏未配置
3flag错误
4info字段拼接错误
5区服未添加
6单字节聊天内容不入库