批量发送聊天室消息
更新时间: 2024/11/07 18:20:39
网易云信 IM 服务端支持批量发送聊天室消息,消息类型包括消息类型包括文本消息、图片消息、语音消息、视频消息、地理位置消息、文件消息、提示消息和自定义消息。
聊天室消息的流控机制请参考流控机制。
功能描述
用户可在聊天室中批量发送聊天室消息,支持发送文本消息,图片消息,语音消息,地址位置消息等多种消息类型。
批量重发消息与批量发送消息都可通过本 API 实现,通过设置resendFlag
进行区分。详情请参见下文请求参数中该参数的说明。
URL
httpPOST https://api.netease.im/nimserver/chatroom/batchSendMsg.action HTTP/1.1
Content-Type: application/x-www-form-urlencoded;charset=utf-8
请求参数
-
POST 请求中 Headers 的设置请参考API 调用方式。
-
POST 请求中 Body 的设置如下:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
roomid | Long | 是 | 聊天室 ID |
msgList | String | 是 | 需要发送的消息列表,JSONArray,最多可发送 10 条消息,每条消息的字段如下:
[{"attach":"oadsjfadhsfis89d","ext":"fidsuf9a8dhsigsfdj","msgId":"adfdas8fua8d9g","msgType":0,"subType": 1,"resendFlag":0}] |
fromAccid | String | 是 | 发送消息的用户账号,accid |
ignoreMute | Boolean | 否 | 是否忽略成员临时禁言,true:忽略;false:不忽略,默认为 false |
skipHistory | Integer | 否 | 是否存储云端历史 0:存储云端历史消息(默认);1:不存储 |
route | Integer | 否 | 消息是否需要抄送 0:不需要;1:需要(默认) |
abandonRatio | Integer | 否 | 消息丢弃的概率,取值范围 [0-9999]; 0:不丢弃消息(默认),9999:99.99%的概率丢弃消息 此参数可用于流控特定业务类型的消息 |
highPriority | Boolean | 否 | true:高优先级消息,云信会优先保障投递此类消息;false:低优先级消息(默认) 高优先级消息可以设置进入后重发,具体参见 needHighPriorityMsgResend 参数 |
needHighPriorityMsgResend | Boolean | 否 | true:会重发消息(默认),false:不会重发消息 |
useYidun | Integer | 否 | 消息(包括自定义消息)是否使用安全通(即易盾反垃圾),只能传 0,传其他值相当于不传 0:(在开通安全通的情况下)不使用安全通 若不填此字段,即在默认情况下,若应用开通了安全通,则使用安全通来进行垃圾消息的判断 |
yidunAntiCheating | String | 否 | 透传给易盾的反作弊检测参数,JSON,最大长度 1024 位字符,(具体请参见易盾的反垃圾防刷版专属字段) |
yidunAntiSpamExt | String | 否 | 透传给易盾的反垃圾含圈组版的检测参数,JSON,最大长度 1024 位字符(具体请参见易盾的反垃圾含圈组版用户可扩展字段) |
bid | String | 否 | 安全通的自定义反垃圾(即内容审核)业务的 ID。自定义反垃圾业务主要用来针对单条消息进行除了默认反垃圾业务以外的内容审核。如需配置自定义反垃圾,请通过云信官网首页提供的微信、在线聊天和电话等方式联系商务经理进行配置,并获取对应的业务 ID |
antispam | Boolean | 否 | 对于开通了安全通(易盾反垃圾)功能的应用,本消息是否需要指定经由易盾检测的内容(antispamCustom),默认 false 只对自定义消息(消息类型:100)生效 |
notifyTargetTags | String | 否 | 目标标签表达式,用于设定聊天室消息的投递对象,最大长度 128 位字符。具体使用说明和示例请参见标签表达式 |
antispamCustom | String | 否 | 自定义的反垃圾检测内容,在 antispam 参数为 true 时生效,JSON,长度限制同 body 字段,最大长度 5000 位字符,要求 antispamCustom 格式如下: {"type":1,"data":"custom content"} 字段说明: type: 1:文本,2:图片 data: 文本内容或图片地址 |
env | String | 否 | 消息需要抄送到的环境的名称,对应您在云信控制台中配置的自定义抄送的环境名称(如下图),最大 32 个字符 |
chatMsgPriority | Integer | 否 | 走 CDN通道的消息的优先级,可选值:0(默认),1,2,3 |
forbiddenIfHighPriorityMsgFreq | Integer | 否 | 高优先级消息被频控后是降级为普通消息还是返回 403 错误码 0:降级为普通消息(默认),1:返回 403 错误码 |
返回参数
参数 | 类型 | 说明 |
---|---|---|
fail | String | 发送失败的消息说明,JSONArray,以“客户端消息 ID:发送失败原因描述”的格式返回 |
code | Integer | 状态码 |
success | String | 发送成功的消息的详细信息,JSONArray,以“客户端消息 ID:发送成功的消息详情”的格式返回,每个发送成功的消息的详细信息,请参考上述发送单条消息的返回参数说明 |
示例
请求示例(curl)
curlcurl -X POST -H "CheckSum: 51eb13ea5ee3***65c7866c366" -H "AppKey: fe416640c8e***847ad2547" -H "Nonce: 1" -H "CurTime: 1451207708" -H "Content-Type: application/x-www-form-urlencoded" -d 'roomid=765788&msgList=[{"attach":"oadsjfadhsfis89d","ext":"fidsuf9a8dhsigsfdj","msgId":"adfdas8fua8d9g","msgType":0,"resendFlag":0}]&fromAccid=fromAccid' 'https://api.netease.im/nimserver/chatroom/batchSendMsg.action'
请求成功返回示例
json"Content-Type": "application/json; charset=utf-8"
{
"fail": [
{
"57gadfgsdhlaisfjlaskdmfa": "parameter resendFlag should be used for RESEND!"
}
],
"code": 200,
"success": [
{
"gsfdgs45hd15h1s56safda": {
"ext": "fadsfag80ad7fg98s9giapo[ga",
"fromNick": "yx2",
"msgid_client": "gsfdgs45hd15h1s56safda",
"fromAccount": "yx2",
"fromClientType": "REST",
"attach": "afsdfaf807sadf98asdfl;ajskdflasd",
"time": "1668566975724",
"type": "2",
"highPriorityFlag": "1",
"roomId": "72"
}
},
{
"akdsuhfaiuofyai7syfhakjds": {
"ext": "fadsfag80ad7fg98s9giapo[ga",
"fromNick": "yx2",
"msgid_client": "akdsuhfaiuofyai7syfhakjds",
"fromAccount": "yx2",
"fromClientType": "REST",
"attach": "",
"time": "1668566975825",
"type": "1",
"highPriorityFlag": "1",
"roomId": "72"
}
}
]
}
请求失败返回示例
"Content-Type": "application/json; charset=utf-8"
{
"code":414
"desc":"msgContents size exceed" //消息内容大小超出限制
}
状态码
该接口在 HTTPS Body 中返回请求的状态码,以下仅列出与接口业务相关的状态码。完整状态码请参见状态码。
状态码 | 说明 | 处理建议 |
---|---|---|
200 | 请求成功 | - |
414 | 参数错误 | 根据提示信息,检查传入参数的格式和限制条件 |
403 | 禁止操作 | 聊天室名称等违规,未过审核或者未开启聊天室权限 |
416 | 频控限制,访问频率过高 | 降低访问频率 |
419 | 聊天室数量超出 | - |
500 | 服务出错 | - |
消息格式示例
图片消息(type = 1)
{
"name":"图片发送于2015-05-07 13:59", //图片name
"md5":"9894907e4ad9de4678091277509361f7", //图片文件md5,按照字节流加密
"url":"http://nimtest.nos.netease.com/cbc500e8-e19c-4b0f-834b-c32d4dc1075e", //生成的url
"ext":"jpg", //图片后缀
"w":6814, //宽,单位为像素
"h":2332, //高,单位为像素
"size":388245 //图片文件大小,单位为字节(Byte)
}
语音消息(type = 2)
{
"dur":4551, //语音持续时长ms
"md5":"87b94a090dec5c58f242b7132a530a01", //语音文件的md5值,按照字节流加密
"url":"http://nimtest.nos.netease.com/a2583322-413d-4653-9a70-9cabdfc7f5f9", //生成的url
"ext":"aac", //语音消息格式
"size":16420 //语音文件大小,单位为字节(Byte)
}
视频消息(type = 3)
{
"dur":8003, //视频持续时长ms
"md5":"da2cef3e5663ee9c3547ef5d127f7e3e", //视频文件的md5值,按照字节流加密
"url":"http://nimtest.nos.netease.com/21f34447-e9ac-4871-91ad-d9f03af20412", //生成的url
"w":360, //宽,单位为像素
"h":480, //高,单位为像素
"ext":"mp4", //视频格式
"size":16420 //视频文件大小,单位为字节(Byte)
}
地理位置消息(type = 4)
{
"title":"中国 浙江省 杭州市 网商路 599号", //地理位置title
"lng":120.1908686708565, // 经度
"lat":30.18704515647036 // 纬度
}
文件消息(type = 6)
{
"name":"BlizzardReg.ttf", //文件名
"md5":"79d62a35fa3d34c367b20c66afc2a500", //文件MD5,按照字节流加密
"url":"http://nimtest.nos.netease.com/08c9859d-183f-4daa-9904-d6cacb51c95b", //文件URL
"ext":"ttf", //文件后缀类型
"size":91680 //大小,单位为字节(Byte)
}
自定义消息(type = 100)
//开发者自定义的body,JSON 格式
{
"myKey":myValue
}
此文档是否对你有帮助?