API 参考
圈组

管理聊天室消息(已不再维护)

更新时间: 2024/03/14 16:34:39

网易云信 IM 服务端支持发送、重发、撤回消息,消息类型包括消息类型包括文本消息、图片消息、语音消息、视频消息、地理位置消息、文件消息、提示消息和自定义消息。同时也支持发送定向消息,即向聊天室指定人员发送消息。

网易云信 IM 服务端也支持发送聊天室全服广播消息,详情请参见发送聊天室全服广播消息

发送聊天室消息

功能描述

发送聊天室消息。

重发消息与发送消息都可通过本 API 实现,通过设置resendFlag进行区分。详情请参见下文请求参数中该参数的说明。

API调用限制

限制
说明
- 频控 1 秒内默认最多可调用该 API 100次。如需上调上限,请在官网首页通过微信、在线消息或电话等方式咨询商务经理。
流控
  • 为保证用户体验(如避免服务器过载),目前针对消息接收,有两套流控机制。第一套针对普通消息,聊天室用户每秒至多可接收20条,超过部分会因为流控随机丢弃。第二套针对高优先级消息,每秒至多接收10条,超过部分无法保证不丢失。
  • 为避免丢失重要消息(通常为服务端消息),可将下文请求参数中的HighPriority参数设置为true实现高优先级接收服务端消息,进而保证高优先级消息流控上限内(每秒10条)的重要消息不丢失。

URL

httpPOST https://api.netease.im/nimserver/chatroom/sendMsg.action HTTP/1.1
Content-Type:application/x-www-form-urlencoded;charset=utf-8

请求参数

  • POST 请求中 Headers 的设置请参考API调用方式

  • POST 请求中 Body 的设置如下:

参数类型必须说明
roomid long 聊天室id
msgId String 客户端消息id,使用uuid等随机串,msgId相同的消息会被客户端去重
fromAccid String 消息发出者的账号accid
msgType int 消息类型:
0: 表示文本消息,
1: 表示图片,
2: 表示语音,
3: 表示视频,
4: 表示地理位置信息,
6: 表示文件,
10: 表示Tips消息,
100: 自定义消息类型(特别注意,对于未对接易盾反垃圾功能的应用,该类型的消息不会提交反垃圾系统检测)
subType int 自定义消息子类型,大于0
resendFlag int 重发消息标记,0:非重发消息,1:重发消息,如重发消息会按照msgid检查去重逻辑
attach String 文本消息:填写消息文案;
其它类型消息,请参考 消息格式示例
长度限制4096字符
ext String 消息扩展字段,内容可自定义,请使用JSON格式,长度限制4096字符
skipHistory int 是否跳过存储云端历史,0:不跳过,即存历史消息;1:跳过,即不存云端历史;默认0
abandonRatio int 可选,消息丢弃的概率。取值范围[0-9999];
其中0代表不丢弃消息,9999代表99.99%的概率丢弃消息,默认不丢弃;
注意如果填写了此参数,下面的highPriority参数则会无效;
此参数可用于流控特定业务类型的消息。
highPriority Boolean 可选,true表示是高优先级消息,云信会优先保障投递这部分消息;false表示低优先级消息。默认false。
强烈建议应用恰当选择参数,以便在必要时,优先保障应用内的高优先级消息的投递。若全部设置为高优先级,则等于没有设置,单个聊天室最多支持每秒10条的高优先级消息,超过的会转为普通消息。 高优先级消息可以设置进入后重发,见needHighPriorityMsgResend参数
needHighPriorityMsgResend Boolean 可选,true表示会重发消息,false表示不会重发消息。默认true。注:若设置为true, 用户离开聊天室之后重新加入聊天室,在有效期内还是会收到发送的这条消息,目前有效期默认30s。在没有配置highPriority时needHighPriorityMsgResend不生效。
useYidun int 可选,单条消息是否使用易盾反垃圾,可选值为0。
0:(在开通易盾的情况下)不使用易盾反垃圾而是使用通用反垃圾,包括自定义消息。

若不填此字段,即在默认情况下,若应用开通了易盾反垃圾功能,则使用易盾反垃圾来进行垃圾消息的判断
yidunAntiCheating String 可选,易盾反垃圾增强反作弊专属字段,限制json,长度限制1024字符(详见易盾反垃圾接口文档反垃圾防刷版专属字段
yidunAntiSpamExt String 可选,易盾反垃圾扩展字段,限制json,长度限制1024
bid String 可选,反垃圾业务ID,实现“单条消息配置对应反垃圾”,若不填则使用原来的反垃圾配置
antispam String 对于对接了易盾反垃圾功能的应用,本消息是否需要指定经由易盾检测的内容(antispamCustom)。
true或false, 默认false。
只对消息类型为:100 自定义消息类型 的消息生效。
notifyTargetTags String 可选,标签表达式,最长128个字符。具体使用说明和示例请参见标签表达式)
antispamCustom String 在antispam参数为true时生效。
自定义的反垃圾检测内容, JSON格式,长度限制同body字段,不能超过5000字符,要求antispamCustom格式如下:

{"type":1,"data":"custom content"}

字段说明:
1. type: 1:文本,2:图片。
2. data: 文本内容or图片地址。
env String 所属环境,根据env可以配置不同的抄送地址
chatMsgPriority int 0/1/2/3,表示走cdn的消息的优先级,默认0
forbiddenIfHighPriorityMsgFreq int 0或者1,表示高优先级消息被频控后是降级为普通消息还是直接403返回,默认降级为普通消息
locX double 空间坐标x,用于发送聊天室空间消息功能,该功能对客户端SDK有版本要求(8.11.0及以上)
locY double 空间坐标y,用于发送聊天室空间消息功能,该功能对客户端SDK有版本要求(8.11.0及以上)
locZ double 空间坐标z,用于发送聊天室空间消息功能,该功能对客户端SDK有版本要求(8.11.0及以上)

示例

cURL请求示例

curlcurl -X POST -H "CheckSum: 51eb13ea5ee3a2c00e8388e48e61c65c7866c366" -H "AppKey: f541664055e557244421661866ad7799" -H "Nonce: 1" -H "CurTime: 1451207708" -H "Content-Type: application/x-www-form-urlencoded" -d 'roomid=36&fromAccid=zhangsan&msgType=0&attach=This+is+test+msg&msgId=c9e6c306-804f-4ec3-b8f0-573778829419' 'https://api.netease.im/nimserver/chatroom/sendMsg.action'

请求成功返回示例

json
"Content-Type": "application/json; charset=utf-8"
{
"code":200,
"desc":{
  "time": "1456396333115",
  "fromAvator":"http://b12026.nos.netease.com/MTAxMTAxMA==/bmltYV84NDU4OF8xNDU1ODczMjA2NzUwX2QzNjkxMjI2LWY2NmQtNDQ3Ni0E2LTg4NGE4MDNmOGIwMQ==",
  "msgid_client": "c9e6c306-804f-4ec3-b8f0-573778829419",
  "fromClientType": "REST",
  "attach": "This+is+test+msg",
  "roomId": "36",
  "fromAccount": "zhangsan",
  "fromNick": "张三",
  "type": "0",
  "ext": "",
  "highPriorityFlag":1, //高优先级消息标记,不带此标记表示非高优先级
  "msgAbandonFlag":"1" //消息被丢弃标记,传abandonRatio参数时才会返回此标记,不返回此标记代表未被丢弃
}
}

状态码

该 API 在 HTTPS Body 中返回请求的状态码,状态码详情请参见状态码

聊天室消息撤回

功能描述

撤回聊天室内发送的消息,撤回后对应消息的云端历史记录也将一并删除。

需要将 SDK 升级到 8.7.0 及以上版本,才可成功调用此 API 撤回聊天室消息。

URL

httpPOST https://api.netease.im/nimserver/chatroom/recall.action HTTP/1.1
Content-Type:application/x-www-form-urlencoded;charset=utf-8

请求参数

  • POST 请求中 Headers 的设置请参考API调用方式

  • POST 请求中 Body 的设置如下:

参数类型必须说明
roomid long 聊天室id
msgTimetag long 被撤回消息的时间戳(单位:毫秒)
fromAcc String 被撤回消息的消息发送者accid
msgId String 被撤回消息的消息id
operatorAcc String 消息撤回的操作者accid
notifyExt String 消息撤回的通知扩展字段,最长1024字符

示例

cURL请求示例

curlcurl -X POST -H "CheckSum: 51eb13ea5ee3a2c00e8388e48e61c65c7866c366" -H "AppKey: f541664055e557244421661866ad7799&fromAcc=acc01&" -H "Nonce: 1" -H "CurTime: 1451207708" -H "Content-Type: application/x-www-form-urlencoded" -d 'roomid=123&msgId=c9e6c306573778829419&msgTimetag=1212121&operatorAcc=acc01&fromAcc=acc02' 'https://api.netease.im/nimserver/chatroom/recall.action'

请求成功返回示例

http 响应:json

json"Content-Type": "application/json; charset=utf-8"
{
  "code":200
}

状态码

此 API 在 HTTPS Body 中返回请求的状态码,状态码详情请参见状态码

发送聊天室定向消息

功能描述

向聊天室内特定人员发消息。

不支持将聊天室定向消息保存为历史消息。

URL

httpPOST https://api.netease.im/nimserver/chatroom/sendMsgToSomeone.action HTTP/1.1
Content-Type:application/x-www-form-urlencoded;charset=utf-8

请求参数

  • POST 请求中 Headers 的设置请参考API调用方式

  • POST 请求中 Body 的设置如下:

参数类型必须说明
roomid long 聊天室id
msgId String 客户端消息id,使用uuid等随机串,msgId相同的消息会被客户端去重
fromAccid String 消息发出者的账号accid
toAccids JSONArray 消息接收者accid列表,最大100个
msgType int 消息类型:
0: 表示文本消息,
1: 表示图片,
2: 表示语音,
3: 表示视频,
4: 表示地理位置信息,
6: 表示文件,
10: 表示Tips消息,
100: 自定义消息类型(特别注意,对于未对接易盾反垃圾功能的应用,该类型的消息不会提交反垃圾系统检测)
subType int 自定义消息子类型,大于0
resendFlag int 重发消息标记,0:非重发消息,1:重发消息,如重发消息会按照msgid检查去重逻辑
attach String 文本消息:填写消息文案;
其它类型消息,请参考 消息格式示例
长度限制4096字符
ext String 消息扩展字段,内容可自定义,请使用JSON格式,长度限制4096字符
useYidun int 可选,单条消息是否使用易盾反垃圾,可选值为0。
0:(在开通易盾的情况下)不使用易盾反垃圾而是使用通用反垃圾,包括自定义消息。

若不填此字段,即在默认情况下,若应用开通了易盾反垃圾功能,则使用易盾反垃圾来进行垃圾消息的判断
yidunAntiCheating String 可选,易盾反垃圾增强反作弊专属字段,限制json,长度限制1024字符(详见易盾反垃圾接口文档反垃圾防刷版专属字段
bid String 可选,反垃圾业务ID,实现“单条消息配置对应反垃圾”,若不填则使用原来的反垃圾配置
antispam String 对于对接了易盾反垃圾功能的应用,本消息是否需要指定经由易盾检测的内容(antispamCustom)。
true或false, 默认false。
只对消息类型为:100 自定义消息类型 的消息生效。
antispamCustom String 在antispam参数为true时生效。
自定义的反垃圾检测内容, JSON格式,长度限制同body字段,不能超过5000字符,要求antispamCustom格式如下:

{"type":1,"data":"custom content"}

字段说明:
1. type: 1:文本,2:图片。
2. data: 文本内容or图片地址。
env String 所属环境,根据env可以配置不同的抄送地址

示例

cURL请求示例

curlcurl -X POST -H "CheckSum: 51eb13ea5ee3a2c00e8388e48e61c65c7866c366" -H "AppKey: f541664055e557244421661866ad7799" -H "Nonce: 1" -H "CurTime: 1451207708" -H "Content-Type: application/x-www-form-urlencoded" -d 'roomid=36&fromAccid=zhangsan&msgType=0&attach=This+is+test+msg&msgId=c9e6c306-804f-4ec3-b8f0-573778829419&toAccids=["acc1","acc2"]' 'https://api.netease.im/nimserver/chatroom/sendMsgToSomeone.action'

请求成功返回示例

json
"Content-Type": "application/json; charset=utf-8"
{
  "code":200,
  "desc":{
    "time": "1456396333115", 
    "fromAvator":"http://b12026.nos.netease.com/MTAxMTAxMA==/bmltYV84NDU4OF8xNDU1ODczMjA2NzUwX2QzNjkxMjI2LWY2NmQtNDQ3Ni0E2LTg4NGE4MDNmOGIwMQ==",
    "msgid_client": "c9e6c306-804f-4ec3-b8f0-573778829419",
    "fromClientType": "REST",
    "attach": "This+is+test+msg",
    "roomId": "36",
    "fromAccount": "zhangsan",
    "fromNick": "张三",
    "type": "0",
    "ext": ""
  } 
}

状态码

此 API 在 HTTPS Body 中返回请求的状态码,状态码详情请参见状态码

此文档是否对你有帮助?
有帮助
去反馈
  • 发送聊天室消息
  • 功能描述
  • API调用限制
  • URL
  • 请求参数
  • 示例
  • cURL请求示例
  • 请求成功返回示例
  • 状态码
  • 聊天室消息撤回
  • 功能描述
  • URL
  • 请求参数
  • 示例
  • cURL请求示例
  • 请求成功返回示例
  • 状态码
  • 发送聊天室定向消息
  • 功能描述
  • URL
  • 请求参数
  • 示例
  • cURL请求示例
  • 请求成功返回示例
  • 状态码