关于我们

饿了么开放平台IM(即时消息)接入场景方案数据结构详情

发布时间:2025-06-09

 

个人零费用代理店+,日收入3000+,可兼职做

1、IM bizType 枚举

{ /** * im 消息 */ IM_EVENT("IM", "im 消息"), /** * 心跳消息 */ HEART_BEAT("HEARTBEAT","心跳消息"); }

2、IM subBizType 枚举

{ /** * 发送消息 */ SEND_MESSAGE("SEND_MESSAGE", "发送消息"), /** * 已读消息 */ READ_MESSAGE("READ_MESSAGE", "已读消息"); }

3、IM contentType 枚举

{ /** * 普通文本 */ TEXT(1, "普通文本", null), /** * 图片 */ IMAGE(2, "图片", "[图片]"), /** * 语音 */ AUDIO(3, "语音", "[语音]"), /** * 视频 */ VIDEO(4, "视频", "[视频]"), /** * 位置 */ GEO(5, "位置", "[位置]"), /** * 消息 */ AT(8, "@消息", "[有人@我]"), /** * 自定义 */ CUSTOM(101, "自定义", null); }

4、订单卡片内容

{ "kvs":[ {"valueAttrString":"00000000","value":["00000000"],"key":"订单号"}, {"valueAttrString":"商家流水号","value":["#12"],"key":"#12"}, {"valueAttrString":"商品信息","value":["奶茶"],"key":"奶茶"}, {"valueAttrString":"手机号","value":["17253725372"],"key":"17253725372"}, {"valueAttrString":"地址","value":["近铁城市广场 9 楼"],"key":"近铁城市广场 9 楼"}, {"valueAttrString":"备注","value":["请送到门口"],"key":"请送到门口"} ], "title":" 订单信息", "isLocal":false, "schemaUrl":"eleme://order_rating?order_id=2142857047468210668", "degradeText":"", "summary":"", "type":8, "bizType":"order" }

消息举例

1、普通文本

{ "senderId": "30319279", "receiverIds": ["30319279", "103000004806289"], "groupId": "2925002165$PNM@eleme", "msgId": "1232131232", "orderId": "8057300000000008561", "contentType": 1, "content": "商家发送消息" }

2、图片

{ "senderId": "30319279", "receiverIds": ["30319279", "103000004806289"], "groupId": "2925002165$PNM@eleme", "msgId": "1232131232", "contentType": 2, "content": "{ "url":"xxxxx", "fileType":1, "orienttation":1 }" //图片资源路径 //图片类型 1-webp, 2-png, 3-jpg, 4-gif //图片方向 1-正常 }

3、语音

{ "duration":8, "mediaId":"$iAHNA-kCo2FtcgMBBAAFAAbaACOEAaQhLIPhAqr2V_XfiQDh-FBwA88AAAF7G_ p_XwTOAAPDEgfPAAAABLFzvlMIAA" }

4、视频

{ "duration":8, "mediaId":"$iAHNA-kCo2FtcgMBBAAFAAbaACOEAaQhLIPhAqr2V_XfiQDh-FBwA88AAAF7G_ p_XwTOAAPDEgfPAAAABLFzvlMIAA" }

常用消息举例

1、发送心跳

{ "subBizType": "HEARTBEAT_MESSAGE", "bizType": "HEARTBEAT" }

2、发送文字消息

{ "subBizType": "SEND_MESSAGE", "bizType": "IM", "payload": "{"senderId":"302097641111","receiverIds":["302097641111","103000005771111"],"groupId":"$2$5938221111$PNM@eleme","msgId":"1129267171111.PNM","contentType":1,"content":"商家发送消息,成功!!!!"}" }

3、发送图片消息

{ "subBizType": "SEND_MESSAGE", "bizType": "IM", "payload": "{"senderId":"302097641111","receiverIds":["302097641111","103000005771111"],"groupId":"$2$5938228866$PNM@eleme","msgId":"1129267171111.PNM","contentType":2,"content":"{\"orientation\":0,\"fileType\":3,\"url\":\"https://xx.xxxx.com/logo.jpg\"}"}" }

4、商家已读消息

{ "subBizType": "READ_MESSAGE", "bizType": "IM", "payload": "{"msgId":"751258531111.PNM","uid":"302097641111"}" }

参考代码(Java)

import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import org.java_websocket.client.WebSocketClient; import org.java_websocket.handshake.ServerHandshake; import sun.misc.BASE64Encoder; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.net.URI; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class IM_SendMsg { public static void main(String[] args) { try { String url = "wss://app-api.shop.ele.me/openapi/websocket?appId=napos_openapi&token=Ek1lUEw4TnhRaSNhOWI3YmQ2YTcxZjg4NmRmYmU5ZDNxYCM5MC05Qy00QS1DRS00RS00NSMzMjg5Mw=="; URI uri = new URI(url); WebSocketClient mWs = new WebSocketClient(uri) { @Override public void onOpen(ServerHandshake serverHandshake) { System.out.println("握手成功"); } @Override public void onMessage(String s) { System.out.println(s); } @Override public void onClose(int i, String s, boolean b) { System.out.println(s); } @Override public void onError(Exception e) {} }; mWs.connect(); Thread.sleep(1000); System.out.println(genParam()); mWs.send(genParam()); Thread.sleep(1000); System.out.println("发送完成"); } catch (Exception e) { e.printStackTrace(); } } public static String genHeartbeat() { Map payLoad = new HashMap<>(); payLoad.put("bizType", "HEARTBEAT"); payLoad.put("subBizType", "HEARTBEAT_MESSAGE"); return JSONObject.toJSONString(payLoad); } public static String genImage() { Map submap = new HashMap<>(); submap.put("fileType", 3); submap.put("orientation", 0); submap.put( "url", "http://eleme.oss-cn-zhangjiakou.aliyuncs.com/ddmedia.jpeg"); // submap.put("imageBase64", "123"); Map payLoad = new HashMap<>(); payLoad.put("groupId", "2925002165$PNM@eleme"); payLoad.put("content", JSONObject.toJSONString(submap)); payLoad.put("contentType", 2); payLoad.put("senderId", "103000004806289"); List receiverIds = new ArrayList<>(); receiverIds.add("30319279"); receiverIds.add("103000004806289"); payLoad.put("receiverIds", receiverIds); Map map = new HashMap<>(); map.put("bizType", "IM"); map.put("subBizType", "SEND_MESSAGE"); map.put("payload", JSON.toJSONString(payLoad)); return JSONObject.toJSONString(map); } public static String genReadMessage() { Map submap = new HashMap<>(); submap.put("uid", "30366679"); submap.put("msgId", "751258666640.PNM"); Map map = new HashMap<>(); map.put("bizType", "IM"); map.put("subBizType", "READ_MESSAGE"); map.put("payload", JSON.toJSONString(submap)); return JSONObject.toJSONString(map); } public static String genParam() { Map payLoad = new HashMap<>(); payLoad.put("groupId", "$2$5938228866$PNM@eleme"); payLoad.put("content", "商家发送消息,成功!!!!"); payLoad.put("contentType", 1); payLoad.put("senderId", "302097647265"); payLoad.put("msgId", "1232131232"); List receiverIds = new ArrayList<>(); receiverIds.add("302097647265"); receiverIds.add("103000005666894"); payLoad.put("receiverIds", receiverIds); Map map = new HashMap<>(); map.put("bizType", "IM"); map.put("subBizType", "SEND_MESSAGE"); map.put("payload", JSON.toJSONString(payLoad)); return JSON.toJSONString(map); } public static String imageToBase64Str(String imgFile) { InputStream inputStream = null; byte[] data = null; try { inputStream = new FileInputStream(imgFile); data = new byte[inputStream.available()]; inputStream.read(data); inputStream.close(); } catch (IOException e) { e.printStackTrace(); } // 加密 BASE64Encoder encoder = new BASE64Encoder(); return encoder.encode(data); } }

 

/template/Home/AllNew/PC/Static