本文介绍消息发送回调(Callback.SendMessage)的功能说明、请求参数、返回数据和示例。

功能说明

客户端发送的消息,在消息处理之前,会回调业务服务端。
  • 业务服务端判断消息是否可以发送。
  • 可修改接收者ID、扩展字段,扩展字段会返回给发送者。

请求参数

名称 类型 是否必选 示例值 描述
senderId String 1001 消息发送用户ID。
conversationType String 1 会话类型。取值:
  • 1:单聊。
  • 2:群聊。
appCid String $1$1001:1002 会话ID。
contentType Integer 1 消息类型。取值:
  • 1:文本。
  • 2:图片。
  • 3:语音。
  • 4:视频。
  • 5:地理位置。
  • 8:结构化消息。
  • 9:文件。
  • 10:回复消息。
  • 11: 消息合并转发。
  • 101:自定义消息。

更多信息,请参见消息类型说明

content String {"text": "hello"} 消息内容。

更多信息,请参见消息类型说明

receiverIds List<String> ["1002"] 实时接收者ID。
extensions Map<String, String> {"ext_k1":"ext_v1"} 消息扩展信息。
bizCtx Map<String, String> {"biz_k1":"biz_v1"} AppClient传递给AppServer信息,PaaS平台不做处理。
paasCtx Map<String, String> {"paas_k1":"paas_v1"} PaaS平台信息。包括发起端的信息,目前包括以下key:
  • appKey
  • sdkVersion

返回数据

名称 类型 示例值 描述
result object 返回结果。
allow Boolean true 消息是否允许发送。取值:
  • true:允许。
  • false:不允许。
code String 0xx 不允许发送时的返回码。

allow为true时会被忽略,为false时必填。

reason String security filter 错误原因。关于code的解释。
receiverIds List<String> ["1002"] 实时接收者ID。
extensions Map<String, String> {"ext_k1":"ext_v1"} 修改后的消息扩展信息,覆盖语义。

请求示例

{
  "senderId": "1001",
  "conversationType": 1,
  "appCid": "$1$1001:1002",
  "contentType": 1,
  "content": "{"text":"hello"}",
  "receiverIds": ["1002"],
  "extensions": {
    "ext_k1": "ext_v1"
  },
  "bizCtx": {
    "biz_k1": "biz_v1"
  },
  "paasCtx": {
    "paas_k1": "paas_v1"
  }
}

返回示例

{
  "data": {
    "result": {
      "allow": true,
      "code": "0xx", 
      "reason": "security filter",
    },
    "receiverIds": ["1002"],
    "extenstions": {
      "key": "value"
    }
  }   
}