{"MsgType": "","MsgContent": {}}
字段 | 类型 | 说明 |
MsgType | String | 消息元素类别;目前支持的消息对象包括:TIMTextElem(文本消息),TIMLocationElem(位置消息),TIMFaceElem(表情消息),TIMCustomElem(自定义消息),TIMSoundElem(语音消息),TIMImageElem(图像消息),TIMFileElem(文件消息),TIMVideoFileElem(视频消息)。 |
MsgContent | Object | 消息元素的内容,不同的 MsgType 有不同的 MsgContent 格式,具体参见下文。 |
MsgType的值 | 类型 |
TIMTextElem | 文本消息。 |
TIMLocationElem | 地理位置消息。 |
TIMFaceElem | 表情消息。 |
TIMCustomElem | 自定义消息,当接收方为 iOS 系统且应用处在后台时,此消息类型可携带除文本以外的字段到 APNs。一条组合消息中只能包含一个 TIMCustomElem 自定义消息元素。 |
TIMSoundElem | 语音消息。 |
TIMImageElem | 图像消息。 |
TIMFileElem | 文件消息。 |
TIMVideoFileElem | 视频消息。 |
{"MsgType": "TIMTextElem","MsgContent": {"Text": "hello world"}}
字段 | 类型 | 说明 |
Text | String | 消息内容。当接收方为 iOS 或 Android 后台在线时,作为离线推送的文本展示。 |
{"MsgType": "TIMLocationElem","MsgContent": {"Desc": "someinfo","Latitude": 29.340656774469956,"Longitude": 116.77497920478824}}
字段 | 类型 | 说明 |
Desc | String | 地理位置描述信息。 |
Latitude | Number | 纬度。 |
Longitude | Number | 经度。 |
{"MsgType": "TIMFaceElem","MsgContent": {"Index": 1,"Data": "content"}}
字段 | 类型 | 说明 |
Index | Number | 表情索引,用户自定义。 |
Data | String | 额外数据。 |
{"MsgType": "TIMCustomElem","MsgContent": {"Data": "message","Desc": "notification","Ext": "url","Sound": "dingdong.aiff"}}
字段 | 类型 | 说明 |
Data | String | 自定义消息数据。 不作为 APNs 的 payload 字段下发,故从 payload 中无法获取 Data 字段。 |
Desc | String | 自定义消息描述信息。当接收方为 iOS 或 Android 后台在线时,做离线推送文本展示。若发送自定义消息的同时设置了 OfflinePushInfo.Desc 字段,此字段会被覆盖,请优先填 OfflinePushInfo.Desc 字段。 说明: 当消息中只有一个 TIMCustomElem 自定义消息元素时,如果 Desc 字段和 OfflinePushInfo.Desc 字段都不填写,将收不到该条消息的离线推送,需要填写 OfflinePushInfo.Desc 字段才能收到该消息的离线推送。 |
Ext | String | 扩展字段。当接收方为 iOS 系统且应用处在后台时,此字段作为 APNs 请求包 Payloads 中的 Ext 键值下发,Ext 的协议格式由业务方确定,APNs 只做透传。 |
Sound | String | 自定义 APNs 推送铃音。 |
{"MsgType": "TIMSoundElem","MsgContent": {"Url": "https://1234-5678187359-1253735226.cos.ap-shanghai.myqcloud.com/abc123/c9be9d32c05bfb77b3edafa4312c6c7d","UUID": "1053D4B3D61040894AC3DE44CDF28B3EC7EB7C0F","Size": 62351,"Second": 1,"Download_Flag": 2}}
字段 | 类型 | 说明 |
Url | String | 语音下载地址,可通过该 URL 地址直接下载相应语音。 |
UUID | String | 语音的唯一标识,客户端用于索引语音的键值。 |
Size | Number | 语音数据大小,单位:字节。 |
Second | Number | 语音时长,单位:秒。 |
Download_Flag | Number | 语音下载方式标记。目前 Download_Flag 取值只能为2,表示可通过 Url 字段值的 URL 地址直接下载语音。 |
{"MsgType": "TIMSoundElem","MsgContent": {"UUID": "305c0201", //语音的唯一标识,类型为 String。客户端用于索引语音的键值。无法通过该字段下载相应的语音。若需要获取该语音,请升级 IM SDK 版本至4.X。"Size": 62351, //语音数据大小,类型为 Number,单位:字节。"Second": 1 //语音时长,类型为 Number,单位:秒。}}
{"MsgType": "TIMImageElem","MsgContent": {"UUID": "1853095_D61040894AC3DE44CDFFFB3EC7EB720F","ImageFormat": 1,"ImageInfoArray": [{"Type": 1, //原图"Size": 1853095,"Width": 2448,"Height": 3264,"URL": "http://xxx/3200490432214177468_144115198371610486_D61040894AC3DE44CDFFFB3EC7EB720F/0"},{"Type": 2, //大图"Size": 2565240,"Width": 0,"Height": 0,"URL": "http://xxx/3200490432214177468_144115198371610486_D61040894AC3DE44CDFFFB3EC7EB720F/720"},{"Type": 3, //缩略图"Size": 12535,"Width": 0,"Height": 0,"URL": "http://xxx/3200490432214177468_144115198371610486_D61040894AC3DE44CDFFFB3EC7EB720F/198"}]}}
字段 | 类型 | 说明 |
UUID | String | 图片的唯一标识,客户端用于索引图片的键值。 |
ImageFormat | Number | 图片格式。JPG = 1,GIF = 2,PNG = 3,BMP = 4,其他 = 255。 |
ImageInfoArray | Array | 原图、缩略图或者大图下载信息。 |
Type | Number | 图片类型: 1-原图,2-大图,3-缩略图。 |
Size | Number | 图片数据大小,单位:字节。 |
Width | Number | 图片宽度,单位为像素。 |
Height | Number | 图片高度,单位为像素。 |
URL | String | 图片下载地址。 |
{"MsgType": "TIMFileElem","MsgContent": {"Url": "https://7492-5678539059-1253735326.cos.ap-shanghai.myqcloud.com/abc123/49be9d32c0fbfba7b31dafa4312c6c7d","UUID": "1053D4B3D61040894AC3DE44CDF28B3EC7EB7C0F","FileSize": 1773552,"FileName": "file:///private/var/Application/tmp/trim.B75D5F9B-1426-4913-8845-90DD46797FCD.MOV","Download_Flag": 2}}
字段 | 类型 | 说明 |
Url | String | 文件下载地址,可通过该 URL 地址直接下载相应文件。 |
UUID | String | 文件的唯一标识,客户端用于索引文件的键值。 |
FileSize | Number | 文件数据大小,单位:字节。 |
FileName | String | 文件名称。 |
Download_Flag | Number | 文件下载方式标记。目前 Download_Flag 取值只能为2,表示可通过 Url 字段值的 URL 地址直接下载文件。 |
{"MsgType": "TIMFileElem","MsgContent": {"UUID": "305c02010", //文件的唯一标识,类型为 String。客户端用于索引文件的键值。无法通过该字段下载相应的文件。若需要获取该文件,请升级 IM SDK 版本至4.X。"FileSize": 1773552, //文件数据大小,类型为 Number,单位:字节。"FileName": "file:///private/var/Application/tmp/trim.B75D5F9B-1426-4913-8845-90DD46797FCD.MOV" //文件名称,类型为 String。}}
### 视频消息元素>!通过服务端集成的 Rest API 接口发送视频消息时,必须填入 VideoUrl、VideoUUID、ThumbUrl、ThumbUUID、ThumbWidth、ThumbHeight、VideoDownloadFlag 和 ThumbDownloadFlag字段。需保证通过 VideoUrl 能下载到对应视频,通过 ThumbUrl 能下载到对应的视频缩略图。VideoUUID 和 ThumbUUID 字段需填写全局唯一的 String 值,一般填入对应视频和视频缩略图的 MD5 值。消息接收者可以通过调用 V2TIMVideoElem.getVideoUUID() 和 V2TIMVideoElem.getSnapshotUUID() 分别拿到设置的 UUID 字段,业务 App 可以用这个字段做视频的区分。VideoDownloadFlag 和 ThumbDownloadFlag 字段必须填2。4.X 及以上版本 IM SDK(Android、iOS、Mac 以及 Windows)发出的视频消息元素的格式如下:
{ "MsgType": "TIMVideoFileElem", "MsgContent": { "VideoUrl": "https://0345-1400187352-1256635546.cos.ap-shanghai.myqcloud.com/abcd/f7c6ad3c50af7d83e23efe0a208b90c9", "VideoUUID": "5da38ba89d6521011e1f6f3fd6692e35", "VideoSize": 1194603, "VideoSecond": 5, "VideoFormat": "mp4", "VideoDownloadFlag":2, "ThumbUrl": "https://0345-1400187352-1256635546.cos.ap-shanghai.myqcloud.com/abcd/a6c170c9c599280cb06e0523d7a1f37b", "ThumbUUID": "6edaffedef5150684510cf97957b7bc8", "ThumbSize": 13907, "ThumbWidth": 720, "ThumbHeight": 1280, "ThumbFormat": "JPG", "ThumbDownloadFlag":2 } }
字段 | 类型 | 说明 |
VideoUrl | String | 视频下载地址。可通过该 URL 地址直接下载相应视频。 |
VideoUUID | String | 视频的唯一标识,客户端用于索引视频的键值。 |
VideoSize | Number | 视频数据大小,单位:字节。 |
VideoSecond | Number | 视频时长,单位:秒。Web 端不支持获取视频时长,值为0。 |
VideoFormat | String | 视频格式,例如 mp4。 |
VideoDownloadFlag | Number | 视频下载方式标记。目前 VideoDownloadFlag 取值只能为2,表示可通过`VideoUrl`字段值的 URL 地址直接下载视频。 |
ThumbUrl | String | 视频缩略图下载地址。可通过该 URL 地址直接下载相应视频缩略图。 |
ThumbUUID | String | 视频缩略图的唯一标识,客户端用于索引视频缩略图的键值。 |
ThumbSize | Number | 缩略图大小,单位:字节。 |
ThumbWidth | Number | 缩略图宽度,单位为像素。 |
ThumbHeight | Number | 缩略图高度,单位为像素。 |
ThumbFormat | String | 缩略图格式,例如 JPG、BMP 等。 |
ThumbDownloadFlag | Number | 视频缩略图下载方式标记。目前 ThumbDownloadFlag 取值只能为2,表示可通过`ThumbUrl`字段值的 URL 地址直接下载视频缩略图。 |
{"MsgType": "TIMVideoFileElem","MsgContent": {"VideoUUID": "1400123456_dramon_34ca36be7dd214dc50a49238ef80a6b5",//视频的唯一标识,类型为 String。客户端用于索引视频的键值。无法通过该字段下载相应的视频。若需要获取该视频,请升级 IM SDK 版本至4.X。"VideoSize": 1194603, //视频数据大小,类型为 Number,单位:字节。"VideoSecond": 5, //视频时长,类型为 Number,单位:秒。"VideoFormat": "mp4", //视频格式,类型为 String,例如 mp4。"ThumbUUID": "1400123456_dramon_893f5a7a4872676ae142c08acd49c18a",//视频缩略图的唯一标识,类型为 String。客户端用于索引视频缩略图的键值。无法通过该字段下载相应的视频缩略图。若需要获取该视频缩略图,请升级 IM SDK 版本至4.X。"ThumbSize": 13907, //缩略图大小,类型为 Number,单位:字节。"ThumbWidth": 720, //缩略图宽度。类型为 Number。"ThumbHeight": 1280, //缩略图高度。类型为 Number。"ThumbFormat": "JPG" //缩略图格式,类型为 String,例如 JPG、BMP 等。}}
{"MsgType": "TIMRelayElem","MsgContent": {"Title": "群聊的聊天记录","MsgNum": 2,"CompatibleText": "该SDK版本不支持合并转发消息,请升级到新版本。","AbstractList": ["A:大家觉得这个怎么样?","B:我觉得挺好的"],"MsgList": [{"From_Account": "A","GroupId": "group1","MsgSeq": 85,"MsgRandom": 3998651049,"MsgTimeStamp": 1664437702,"MsgBody": [{"MsgContent": {"Text": "大家觉得这个怎么样?"},"MsgType": "TIMTextElem"}]},{"From_Account": "B","GroupId": "group1","MsgSeq": 86,"MsgRandom": 965790,"MsgTimeStamp": 1664437703,"MsgBody": [{"MsgContent": {"Text": "我觉得挺好的"},"MsgType": "TIMTextElem"}]}]}}
字段 | 类型 | 说明 |
Title | String | 合并转发消息的标题。 |
MsgNum | Integer | 被转发的消息条数。 |
CompatibleText | String | 兼容文本。当不支持合并转发消息的老版本 SDK 收到此类消息时,IM 后台会将该消息转化成兼容文本再下发。 |
AbstractList | Array | 合并消息的摘要列表,是一个 String 数组。 |
MsgList | Array | 消息列表。当被转发的消息长度之和小于等于12K时才会有此字段,此时不会有 JsonMsgKey 字段。 |
JsonMsgKey | String | 合并转发的消息列表 Key。当被转发的消息长度之和大于12K时才会有此字段,此时不会有 MsgList 字段。 |
字段 | 类型 | 说明 |
From_Account | String | 消息发送方 UserID。被转发的消息为单聊或群聊时都有此字段。 |
To_Account | String | 消息接收方 UserID。被转发的消息为单聊才有此字段。 |
GroupId | String | 群ID。被转发的消息为群聊才有此字段。 |
MsgSeq | Integer | 消息序列号(32位无符号整数)。 |
MsgRandom | Integer | 消息随机数(32位无符号整数)。 |
MsgTimeStamp | Integer | 消息的秒级时间戳。 |
MsgBody | Array | |
CloudCustomData | String | 消息自定义数据(云端保存,会发送到对端,程序卸载重装后还能拉取到)。 |
{"MsgBody": [{"MsgType": "TIMTextElem","MsgContent": {"Text": "hello world"}}]}
{"MsgBody": [{"MsgType": "TIMTextElem","MsgContent": {"Text": "hello"}},{"MsgType": "TIMFaceElem","MsgContent": {"Index": 1,"Data": "content"}},{"MsgType": "TIMTextElem","MsgContent": {"Text": "world"}}]}
{"MsgBody": [{"MsgType": "TIMTextElem","MsgContent": {"Text": "hello"}}],"CloudCustomData": "your cloud custom data"}
{"MsgBody": [{"MsgType": "TIMTextElem","MsgContent": {"Text": "hello"}},{"MsgType": "TIMCustomElem","MsgContent": {"Data": "message","Desc": "world","Ext": "https://www.example.com","Sound": "dingdong.aiff"}}]}
MsgType 的值 | 类型 | 消息元素推送文本 |
TIMTextElem | 文本消息。 | Text 字段。 |
TIMLocationElem | 地理位置消息。 | 中文版离线推送文本为“[位置]”;英文版为“[Location]”。 |
TIMFaceElem | 表情消息。 | 中文版离线推送文本为“[表情]”;英文版为“[Face]”。 |
TIMCustomElem | 自定义消息。 | Desc 字段。 |
{"To_Account": "lumotuwe5","MsgRandom": 121212,"MsgBody": [{"MsgType": "TIMCustomElem","MsgContent": {"Data": "other information","Desc": "hello","Ext": "www.qq.com","Sound": "dingdong.aiff"}},{"MsgType": "TIMTextElem","MsgContent": {"Text": "world"}}]}
{"aps": {"alert": "Nickname:helloworld", //各个消息元素推送文本顺序叠加"badge": 5,"sound": "dingdong.aiff" //对应 TIMCustomElem 中 Sound 字段},"ext": "www.qq.com" //对应 TIMCustomElem 中 Ext 字段}
{// ..."MsgBody": [...] // 这里同 MsgBody 相关描述"OfflinePushInfo": {"PushFlag": 0,"Title":"这是推送标题","Desc": "这是离线推送内容","Ext": "{\\"entity\\":{\\"key1\\":\\"value1\\",\\"key2\\":\\"value2\\"}}", // 透传字段,推送使用json格式字符串"AndroidInfo": {"Sound": "shake", // 铃声文件名,不带后缀"XiaoMiChannelID": "xiaomi_channel_id","OPPOChannelID": "OPPO_channel_id","OPPOCategory": "MARKETING", // OPPO 消息分类"VIVOCategory": "MARKETING", // VIVO 消息分类"HuaWeiCategory": "MARKETING", // 华为消息分类"HonorImportance": "LOW" // 荣耀消息分类},"ApnsInfo": {"Sound": "apns.mp3", // 铃声文件名,带后缀"BadgeMode": 1,"Title":"apns title","SubTitle":"apns subtitle","Image":"www.image.com","MutableContent": 1}}}
字段 | 类型 | 属性 | 说明 |
PushFlag | Integer | 选填 | 0表示推送,1表示不离线推送。 |
Title | String | 选填 | 离线推送标题。该字段为 iOS 和 Android 共用。 |
Desc | String | 选填 | 离线推送内容。该字段会覆盖上面各种消息元素 TIMMsgElement 的离线推送展示文本。若发送的消息只有一个 TIMCustomElem 自定义消息元素,该 Desc 字段会覆盖 TIMCustomElem 中的 Desc 字段。如果两个 Desc 字段都不填,将收不到该自定义消息的离线推送。 |
Ext | String | 选填 | 离线推送透传内容。由于国内各 Android 手机厂商的推送平台要求各不一样,请保证此字段为 JSON 格式,否则可能会导致收不到某些厂商的离线推送。 |
AndroidInfo.Sound | String | 选填 | Android 离线推送声音文件路径。 |
AndroidInfo.PushStyle | Integer | 选填 | Android通知栏样式,“0”代表默认样式,“1”代表大文本样式,不填默认为0。仅对华为/荣耀/OPPO生效。 |
AndroidInfo.HuaWeiChannelID | String | 选填 | 华为手机 EMUI 10.0 及以上的通知渠道字段。 该字段不为空时,会覆盖控制台推送证书配置的 ChannelID 值。 |
AndroidInfo.XiaoMiChannelID | String | 选填 | 小米手机 MIUI 10 及以上的通知类别(Channel)适配字段。 该字段不为空时,会覆盖控制台推送证书配置的 ChannelID 值。 |
AndroidInfo.GoogleChannelID | String | 选填 | Google 手机 Android 8.0 及以上的通知渠道字段。 |
AndroidInfo.OPPOChannelID | String | 选填 | OPPO 手机 Android 8.0 及以上的 NotificationChannel 通知适配字段。该字段不为空时,会覆盖控制台配置的 ChannelID 值;该字段为空时,不会覆盖控制台配置的 ChannelID 值。 |
AndroidInfo.OPPOCategory | String | 选填 | 该字段不为空时,会覆盖控制台推送证书配置的 category 值。 |
AndroidInfo.VIVOClassification | Integer | 选填 | vivo 手机推送消息分类,“0”代表运营消息,“1”代表系统消息,不填默认为1。(vivo推送服务于 2023 年 4 月 3 日优化消息分类规则,推荐使用 AndroidInfo.VIVOCategory 设置消息类别) |
AndroidInfo.VIVOCategory | String | 选填 | 该字段不为空时,会覆盖控制台推送证书配置的 category 值。 |
AndroidInfo.HuaWeiImportance | String | 选填 | 华为推送通知消息分类,取值为 LOW、NORMAL,不填默认为 NORMAL。 |
AndroidInfo.HuaWeiCategory | String | 选填 | |
AndroidInfo.HuaWeiImage | String | 选填 | 华为推送通知栏消息右侧小图标URL,URL必须使用HTTPS协议,取值样例: https://example.com/image.png 。图片文件须小于512KB,规格建议为40dp x 40dp,弧角大小为8dp。超出建议规格的图片会存在图片压缩或图片显示不全的情况。图片格式建议使用JPG/JPEG/PNG。 |
AndroidInfo.HonorImage | String | 选填 | 荣耀推送通知栏消息右侧小图标 URL,URL 必须使用 HTTPS 协议,取值样例: https://example.com/image.png 。 图标文件须小于512KB,图标建议规格大小:40dp x 40dp,弧角大小为8dp,超出建议规格大小的图标会存在图片压缩或显示不全的情况。 |
AndroidInfo.HonorImportance | String | 选填 | 荣耀推送通知消息分类,取值为 LOW、NORMAL。 |
AndroidInfo.GoogleImage | String | 选填 | Google 推送通知栏消息右侧图标 URL,图片资源不超过1M,支持 JPG/JPEG/PNG 格式,取值样例: https://example.com/image.png 。 |
ApnsInfo.BadgeMode | Integer | 选填 | 为0表示需要计数,为1表示本条消息不需要计数,即右上角图标数字不增加。 注意: IM 场景下默认值为0。非 IM 场景(例如 REST API 调用 timpush/batch 接口)默认值为1。 |
ApnsInfo.Title | String | 选填 | 该字段用于标识 APNs 推送的标题,若填写则会覆盖最上层 Title。 |
ApnsInfo.SubTitle | String | 选填 | 该字段用于标识 APNs 推送的子标题。 |
ApnsInfo.Image | String | 选填 | 该字段用于标识 APNs 携带的图片地址,当客户端拿到该字段时,可以通过下载图片资源的方式将图片展示在弹窗上。 |
ApnsInfo.MutableContent | Integer | 选填 | 为1表示开启 iOS 10+ 的推送扩展,默认为0。 |
ApnsInfo.Sound | String | 选填 | iOS 系统通知铃声文件名,带后缀。自定义铃声长度不能超过30s,需要先把语音文件链接进 Xcode工程。取值样例: shake.mp3 。 |
本页内容是否解决了您的问题?