tencent-im/internal/types/types.go

172 lines
11 KiB
Go
Raw Normal View History

2022-09-27 11:31:23 +08:00
/**
* @Author: Echo
* @Author:1711788888@qq.com
* @Date: 2021/5/28 19:24
* @Desc: TODO
*/
package types
type (
BaseResp struct {
ErrorCode int `json:"ErrorCode"`
ErrorInfo string `json:"ErrorInfo"`
ErrorDisplay string `json:"ErrorDisplay,omitempty"`
}
ActionBaseResp struct {
BaseResp
ActionStatus string `json:"ActionStatus"`
}
// AndroidInfo Android离线推送消息
AndroidInfo struct {
Sound string `json:"Sound,omitempty"` // 选填Android 离线推送声音文件路径。
HuaWeiChannelID string `json:"HuaWeiChannelID,omitempty"` // (选填)华为手机 EMUI 10.0 及以上的通知渠道字段。该字段不为空时,会覆盖控制台配置的 ChannelID 值;该字段为空时,不会覆盖控制台配置的 ChannelID 值。
XiaoMiChannelID string `json:"XiaoMiChannelID,omitempty"` // (选填)小米手机 MIUI 10 及以上的通知类别Channel适配字段。该字段不为空时会覆盖控制台配置的 ChannelID 值;该字段为空时,不会覆盖控制台配置的 ChannelID 值。
OPPOChannelID string `json:"OPPOChannelID,omitempty"` // 选填OPPO 手机 Android 8.0 及以上的 NotificationChannel 通知适配字段。该字段不为空时,会覆盖控制台配置的 ChannelID 值;该字段为空时,不会覆盖控制台配置的 ChannelID 值。
GoogleChannelID string `json:"GoogleChannelID,omitempty"` // 选填Google 手机 Android 8.0 及以上的通知渠道字段。Google 推送新接口(上传证书文件)支持 channel id旧接口填写服务器密钥不支持。
VIVOClassification int `json:"VIVOClassification,omitempty"` // 选填VIVO 手机推送消息分类“0”代表运营消息“1”代表系统消息不填默认为1。
HuaWeiImportance string `json:"HuaWeiImportance,omitempty"` // (选填)华为推送通知消息分类,取值为 LOW、NORMAL不填默认为 NORMAL。
ExtAsHuaweiIntentParam int `json:"ExtAsHuaweiIntentParam,omitempty"` // 选填在控制台配置华为推送为“打开应用内指定页面”的前提下传“1”表示将透传内容 Ext 作为 Intent 的参数“0”表示将透传内容 Ext 作为 Action 参数。不填默认为0。两种传参区别可参见 华为推送文档。
}
// ApnsInfo IOS离线推送消息
ApnsInfo struct {
BadgeMode int `json:"BadgeMode,omitempty"` // 选填这个字段缺省或者为0表示需要计数为1表示本条消息不需要计数即右上角图标数字不增加。
Title string `json:"Title,omitempty"` // (选填)该字段用于标识 APNs 推送的标题,若填写则会覆盖最上层 Title。
SubTitle string `json:"SubTitle,omitempty"` // (选填)该字段用于标识 APNs 推送的子标题。
Image string `json:"Image,omitempty"` // (选填)该字段用于标识 APNs 携带的图片地址,当客户端拿到该字段时,可以通过下载图片资源的方式将图片展示在弹窗上。
MutableContent int `json:"MutableContent,omitempty"` // 选填为1表示开启 iOS 10 的推送扩展默认为0。
}
// OfflinePushInfo 离线推送消息
OfflinePushInfo struct {
PushFlag int `json:"PushFlag,omitempty"` // 选填推送标识。0表示推送1表示不离线推送。
Title string `json:"Title,omitempty"` // (选填)离线推送标题。该字段为 iOS 和 Android 共用。
Desc string `json:"Desc,omitempty"` // (选填)离线推送内容。该字段会覆盖上面各种消息元素 TIMMsgElement 的离线推送展示文本。若发送的消息只有一个 TIMCustomElem 自定义消息元素,该 Desc 字段会覆盖 TIMCustomElem 中的 Desc 字段。如果两个 Desc 字段都不填,将收不到该自定义消息的离线推送。
Ext string `json:"Ext,omitempty"` // (选填)离线推送透传内容。由于国内各 Android 手机厂商的推送平台要求各不一样,请保证此字段为 JSON 格式,否则可能会导致收不到某些厂商的离线推送。
AndroidInfo *AndroidInfo `json:"AndroidInfo,omitempty"` // 选填Android 离线推送消息
ApnsInfo *ApnsInfo `json:"ApnsInfo,omitempty"` // 选填IOS离线推送消息
}
// MsgBody 消息内容
MsgBody struct {
MsgType string `json:"MsgType"`
MsgContent interface{} `json:"MsgContent"`
}
// TagPair 标签对
TagPair struct {
Tag string `json:"Tag"` // 标签
Value interface{} `json:"Value"` // 标签值
}
// MsgTextContent 文本消息内容
MsgTextContent struct {
Text string `json:"Text"` // (必填)消息内容。当接收方为 iOS 或 Android 后台在线时,作为离线推送的文本展示。
}
// MsgLocationContent 地理位置消息元素
MsgLocationContent struct {
Desc string `json:"Desc"` // (必填)地理位置描述信息
Latitude float64 `json:"Latitude"` // (必填)纬度
Longitude float64 `json:"Longitude"` // (必填)经度
}
// MsgFaceContent 表情消息元素
MsgFaceContent struct {
Index int `json:"Index"` // (必填)表情索引,用户自定义
Data string `json:"Data"` // (选填)额外数据
}
// MsgCustomContent 自定义消息元素
MsgCustomContent struct {
Desc string `json:"Desc"` // (选填)自定义消息描述信息。当接收方为 iOS 或 Android 后台在线时,做离线推送文本展示。 若发送自定义消息的同时设置了 OfflinePushInfo.Desc 字段,此字段会被覆盖,请优先填 OfflinePushInfo.Desc 字段。
Data string `json:"Data"` // (必填)自定义消息数据。 不作为 APNs 的 payload 字段下发,故从 payload 中无法获取 Data 字段
Ext string `json:"Ext"` // (选填)扩展字段。当接收方为 iOS 系统且应用处在后台时,此字段作为 APNs 请求包 Payloads 中的 Ext 键值下发Ext 的协议格式由业务方确定APNs 只做透传。
Sound string `json:"Sound"` // (选填)自定义 APNs 推送铃音。
}
// MsgSoundContent 语音消息元素
MsgSoundContent struct {
UUID string `json:"UUID"` // (必填)语音的唯一标识,类型为 String。客户端用于索引语音的键值。无法通过该字段下载相应的语音。若需要获取该语音请升级 IM SDK 版本至4.X。
Url string `json:"Url"` // (必填)语音下载地址,可通过该 URL 地址直接下载相应语音
Size int `json:"Size"` // (必填)语音数据大小,单位:字节。
Second int `json:"Second"` // (必填)语音时长,单位:秒。
DownloadFlag int `json:"Download_Flag"` // (必填)语音下载方式标记。目前 Download_Flag 取值只能为2表示可通过Url字段值的 URL 地址直接下载语音。
}
// MsgImageContent 图像消息元素
MsgImageContent struct {
UUID string `json:"UUID"` // (必填)图片序列号。后台用于索引图片的键值。
ImageFormat int `json:"ImageFormat"` // 必填图片格式。JPG = 1GIF = 2PNG = 3BMP = 4其他 = 255。
ImageInfos []*ImageInfo `json:"ImageInfoArray"` // (必填)原图、缩略图或者大图下载信息。
}
// MsgFileContent 文件消息元素
MsgFileContent struct {
Url string `json:"Url"` // (必填)文件下载地址,可通过该 URL 地址直接下载相应文件
UUID string `json:"UUID"` // (必填)文件的唯一标识,客户端用于索引文件的键值。
FileSize int `json:"FileSize"` // (必填)文件数据大小,单位:字节
FileName string `json:"FileName"` // (必填)文件名称
DownloadFlag int `json:"Download_Flag"` // (必填)文件下载方式标记。目前 Download_Flag 取值只能为2表示可通过Url字段值的 URL 地址直接下载文件。
}
// MsgVideoContent 视频消息元素
MsgVideoContent struct {
VideoUUID string `json:"VideoUUID"` // (必填)视频的唯一标识,客户端用于索引视频的键值。
VideoUrl string `json:"VideoUrl"` // (必填)视频下载地址。可通过该 URL 地址直接下载相应视频
VideoSize int `json:"VideoSize"` // (必填)视频数据大小,单位:字节
VideoSecond int `json:"VideoSecond"` // (必填)视频时长,单位:秒
VideoFormat string `json:"VideoFormat"` // (必填)视频格式,例如 mp4
VideoDownloadFlag int `json:"VideoDownloadFlag"` // (必填)视频下载方式标记。目前 VideoDownloadFlag 取值只能为2表示可通过VideoUrl字段值的 URL 地址直接下载视频。
ThumbUrl string `json:"ThumbUrl"` // (必填)视频缩略图下载地址。可通过该 URL 地址直接下载相应视频缩略图。
ThumbUUID string `json:"ThumbUUID"` // (必填)视频缩略图的唯一标识,客户端用于索引视频缩略图的键值。
ThumbSize int `json:"ThumbSize"` // (必填)缩略图大小,单位:字节
ThumbWidth int `json:"ThumbWidth"` // (必填)缩略图宽度
ThumbHeight int `json:"ThumbHeight"` // (必填)缩略图高度
ThumbFormat string `json:"ThumbFormat"` // (必填)缩略图格式,例如 JPG、BMP 等
ThumbDownloadFlag int `json:"ThumbDownloadFlag"` // (必填)视频缩略图下载方式标记。目前 ThumbDownloadFlag 取值只能为2表示可通过ThumbUrl字段值的 URL 地址直接下载视频缩略图。
}
// ImageInfo 图片下载信息
ImageInfo struct {
Type int `json:"Type"` // (必填)图片类型: 1-原图2-大图3-缩略图。
Size int `json:"Size"` // (必填)图片数据大小,单位:字节。
Width int `json:"Width"` // (必填)图片宽度。
Height int `json:"Height"` // (必填)图片高度。
Url string `json:"URL"` // (必填)图片下载地址。
}
// GenderType 性别类型
GenderType string
// AllowType 加好友验证方式
AllowType string
// AdminForbidType 管理员禁止加好友标识类型
AdminForbidType string
// SyncOtherMachine 同步至其他设备
SyncOtherMachine int
// PushFlag 推送标识
PushFlag int
// HuaWeiImportance 华为推送通知消息分类
HuaWeiImportance string
// HuaweiIntentParam 华为推送为“打开应用内指定页面”的前提下透传参数行为
HuaweiIntentParam int
// VivoClassification VIVO手机推送消息分类
VivoClassification int
// BadgeMode IOS徽章计数模式
BadgeMode int
// MutableContent IOS10的推送扩展开关
MutableContent int
)