单聊发言后回调接口详解(其他回调类似)
背景:因为腾讯云im存储聊天记录有有限时间,过期会找不到聊天记录,如需长期存储,要么加钱,要么自己存储。腾讯云im提供了许多回调接口,供开发者应用。下面介绍通过发言后回调接口获取到聊天消息,然后存储到自己的服务器数据库。
发言后回调接口地址:即时通信 IM 发单聊消息之后回调 - 服务端 API - 文档中心 - 腾讯云
一、前期准备
1、登录腾讯云进入控制台。
2、到自己创建的应用。
3、回调配置、编辑第三方回调配置、进行回调URL配置。
二、回调方法
public JSON imEventCallback(@RequestBody JSONObject jsonObject, HttpServletRequest request) {
JSONObject returnJson = new JSONObject();
Map map = new HashMap();
Enumeration paramNames = request.getParameterNames();
while (paramNames.hasMoreElements()) {
String paramName = (String) paramNames.nextElement();
String[] paramValues = request.getParameterValues(paramName);
if (paramValues.length == 1) {
String paramValue = paramValues[0];
if (paramValue.length() != 0) {
map.put(paramName, paramValue);
}
}
}
String callbackCommand = map.get("CallbackCommand").toString(); // 回调命令
String sdkAppid = map.get("SdkAppid").toString(); // SdkAppid(校验一下是否是自己的账户的消息)
if (String.valueOf(sdkAppId).equals(sdkAppid) && jsonObject != null && jsonObject.size() > 0) { // 如果不是自己账户的消息就丢弃
// 单聊消息回调
if ("C2C.CallbackAfterSendMsg".equals(callbackCommand)) {
// 这里写保存单聊消息到自己数据库代码
}
}
// 接收完回调消息后,返回接收成功应答包给IM(无论成功或者失败,都要响应应答包给IM)
// 因为为了不影响发言,回调失败也响应回调成功,如果业务要求严格,需要做失败处理,具体参考腾讯云IM接口文档。
eturnJson.put("ActionStatus","OK");
returnJson.put("ErrorInfo","");
returnJson.put("ErrorCode",0);
return returnJson;
}注意:开发阶段可以使用内网穿透方式,获取到外网地址,回传回调消息到自己的本地idea进行调试。
版权声明:本文为wode3157695297原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。