tencent-im/private/types.go

193 lines
12 KiB
Go
Raw Normal View History

2022-09-27 11:31:23 +08:00
/**
* @Author: Echo
* @Author:1711788888@qq.com
* @Date: 2021/5/29 17:42
* @Desc: 私聊消息数据结构
*/
package private
import "git.echol.cn/loser/tencent-im/internal/types"
type (
// 发送消息(请求)
sendMessageReq struct {
FromUserId string `json:"From_Account,omitempty"` // 选填消息发送方UserID用于指定发送消息方帐号
ToUserId string `json:"To_Account"` // 必填消息接收方UserID
MsgLifeTime int `json:"MsgLifeTime,omitempty"` // 选填消息离线保存时长单位最长为7天604800秒
MsgSeq int `json:"MsgSeq,omitempty"` // (选填)消息序列号,后台会根据该字段去重及进行同秒内消息的排序,详细规则请看本接口的功能说明。若不填该字段,则由后台填入随机数。
MsgRandom uint32 `json:"MsgRandom"` // (必填)消息随机数,后台用于同一秒内的消息去重。请确保该字段填的是随机数
MsgTimeStamp int64 `json:"MsgTimeStamp,omitempty"` // 选填消息时间戳UNIX 时间戳(单位:秒)
MsgBody []*types.MsgBody `json:"MsgBody"` // (必填)消息内容,具体格式请参考 消息格式描述注意一条消息可包括多种消息元素MsgBody 为 Array 类型)
SyncOtherMachine int `json:"SyncOtherMachine,omitempty"` // (选填)消息是否同步到在线终端和漫游上 1把消息同步到 From_Account 在线终端和漫游上2消息不同步至 From_Account 若不填写默认情况下会将消息存 From_Account 漫游
CloudCustomData string `json:"CloudCustomData,omitempty"` // (选填)消息回调禁止开关,只对本条消息有效,
SendMsgControl []string `json:"SendMsgControl,omitempty"` // (选填)消息发送控制选项,是一个 String 数组,只对本条消息有效。
ForbidCallbackControl []string `json:"ForbidCallbackControl,omitempty"` // (选填)消息回调禁止开关,只对本条消息有效
OfflinePushInfo *types.OfflinePushInfo `json:"OfflinePushInfo,omitempty"` // (选填)离线推送信息配置
}
// 发送消息(响应)
sendMessageResp struct {
types.ActionBaseResp
MsgTime int `json:"MsgTime"` // 消息时间戳UNIX 时间戳
MsgKey string `json:"MsgKey"` // 消息唯一标识用于撤回。长度不超过50个字符
}
// SendMessageRet 发送消息结果
SendMessageRet struct {
MsgKey string // 消息唯一标识用于撤回。长度不超过50个字符
MsgTime int // 消息时间戳UNIX 时间戳
}
// 批量发单聊消息(请求)
sendMessagesReq struct {
FromUserId string `json:"From_Account,omitempty"` // 选填消息发送方UserID用于指定发送消息方帐号
ToUserIds []string `json:"To_Account"` // 必填消息接收方UserID
MsgSeq int `json:"MsgSeq,omitempty"` // (选填)消息序列号,后台会根据该字段去重及进行同秒内消息的排序,详细规则请看本接口的功能说明。若不填该字段,则由后台填入随机数。
MsgRandom uint32 `json:"MsgRandom"` // (必填)消息随机数,后台用于同一秒内的消息去重。请确保该字段填的是随机数
MsgBody []*types.MsgBody `json:"MsgBody"` // (必填)消息内容,具体格式请参考 消息格式描述注意一条消息可包括多种消息元素MsgBody 为 Array 类型)
SyncOtherMachine int `json:"SyncOtherMachine,omitempty"` // (选填)消息是否同步到在线终端和漫游上 1把消息同步到 From_Account 在线终端和漫游上2消息不同步至 From_Account 若不填写默认情况下会将消息存 From_Account 漫游
CloudCustomData string `json:"CloudCustomData,omitempty"` // (选填)消息回调禁止开关,只对本条消息有效,
SendMsgControl []string `json:"SendMsgControl,omitempty"` // (选填)消息发送控制选项,是一个 String 数组,只对本条消息有效。
OfflinePushInfo *types.OfflinePushInfo `json:"OfflinePushInfo,omitempty"` // (选填)离线推送信息配置
}
// 批量发单聊消息(响应)
sendMessagesResp struct {
types.ActionBaseResp
MsgKey string `json:"MsgKey"`
Errors []SendMessageError `json:"ErrorList"`
}
// SendMessageError 发送消息错误项
SendMessageError struct {
UserId string `json:"To_Account"`
ErrorCode int `json:"ErrorCode"`
}
// SendMessagesRet 发送消息结果
SendMessagesRet struct {
MsgKey string
Errors []SendMessageError
}
// 导入消息(请求)
importMessageReq struct {
FromUserId string `json:"From_Account,omitempty"` // 选填消息发送方UserID用于指定发送消息方帐号
ToUserId string `json:"To_Account"` // 必填消息接收方UserID
MsgSeq int `json:"MsgSeq,omitempty"` // (选填)消息序列号,后台会根据该字段去重及进行同秒内消息的排序,详细规则请看本接口的功能说明。若不填该字段,则由后台填入随机数。
MsgRandom uint32 `json:"MsgRandom"` // (必填)消息随机数,后台用于同一秒内的消息去重。请确保该字段填的是随机数
MsgTimeStamp int64 `json:"MsgTimeStamp,omitempty"` // 选填消息时间戳UNIX 时间戳(单位:秒)
MsgBody []*types.MsgBody `json:"MsgBody"` // (必填)消息内容,具体格式请参考 消息格式描述注意一条消息可包括多种消息元素MsgBody 为 Array 类型)
SyncFromOldSystem int `json:"SyncFromOldSystem,omitempty"` // (选填)消息是否同步到在线终端和漫游上 1把消息同步到 From_Account 在线终端和漫游上2消息不同步至 From_Account 若不填写默认情况下会将消息存 From_Account 漫游
CloudCustomData string `json:"CloudCustomData,omitempty"` // (选填)消息回调禁止开关,只对本条消息有效,
}
// FetchMessagesArg 拉取消息参数
FetchMessagesArg struct {
FromUserId string `json:"From_Account"` // (必填)会话其中一方的 UserID若已指定发送消息方帐号则为消息发送方
ToUserId string `json:"To_Account"` // (必填)会话其中一方的 UserID
MaxLimited int `json:"MaxCnt"` // (必填)请求的消息条数
MinTime int64 `json:"MinTime"` // (必填)请求的消息时间范围的最小值
MaxTime int64 `json:"MaxTime"` // (必填)请求的消息时间范围的最大值
LastMsgKey string `json:"LastMsgKey,omitempty"` // (选填)上一次拉取到的最后一条消息的 MsgKey续拉时需要填该字段填写方法见上方
}
// 拉取消息参数(响应)
fetchMessagesResp struct {
types.ActionBaseResp
Complete int `json:"Complete"` // 是否全部拉取0表示未全部拉取需要续拉1表示已全部拉取
LastMsgTime int64 `json:"LastMsgTime"` // 本次拉取到的消息里的最后一条消息的时间
LastMsgKey string `json:"LastMsgKey"` // 本次拉取到的消息里的最后一条消息的标识
MsgCount int `json:"MsgCnt"` // 本次拉取到的消息条数
MsgList []*MessageItem `json:"MsgList"` // 消息列表
}
// FetchMessagesRet 消息结果
FetchMessagesRet struct {
LastMsgTime int64 // 本次拉取到的消息里的最后一条消息的时间
LastMsgKey string // 本次拉取到的消息里的最后一条消息的标识
Count int // 本次拉取到的消息条数
HasMore bool // 是否还有更多数据
List []*MessageItem // 消息列表
}
// MessageItem 消息项
MessageItem struct {
FromUserId string `json:"From_Account"`
ToUserId string `json:"To_Account"`
MsgSeq int `json:"MsgSeq"`
MsgRandom int `json:"MsgRandom"`
MsgTimeStamp int64 `json:"MsgTimeStamp"`
MsgFlagBits int `json:"MsgFlagBits"`
MsgKey string `json:"MsgKey"`
MsgBody []*types.MsgBody `json:"MsgBody"`
CloudCustomData string `json:"CloudCustomData"`
}
// PullMessagesArg 持续拉取单聊消息参数
PullMessagesArg struct {
FromUserId string `json:"From_Account"` // (必填)会话其中一方的 UserID若已指定发送消息方帐号则为消息发送方
ToUserId string `json:"To_Account"` // (必填)会话其中一方的 UserID
MaxLimited int `json:"MaxCnt"` // (必填)请求的消息条数
MinTime int64 `json:"MinTime"` // (必填)请求的消息时间范围的最小值
MaxTime int64 `json:"MaxTime"` // (必填)请求的消息时间范围的最大值
}
// 撤销消息(请求)
revokeMessageReq struct {
FromUserId string `json:"From_Account"` // 必填消息发送方UserID
ToUserId string `json:"To_Account"` // 必填消息接收方UserID
MsgKey string `json:"MsgKey"` // (必填)待撤回消息的唯一标识。该字段由 REST API 接口 单发单聊消息 和 批量发单聊消息 返回
}
// 设置单聊消息已读(请求)
setMessageReadReq struct {
UserId string `json:"Report_Account"` // 必填进行消息已读的用户UserId
PeerUserId string `json:"Peer_Account"` // 必填进行消息已读的单聊会话的另一方用户UserId
}
// 查询单聊未读消息计数(请求)
getUnreadMessageNumReq struct {
UserId string `json:"To_Account"` // 必填待查询的用户UserId
PeerUserIds []string `json:"Peer_Account,omitempty"` // 选填待查询的单聊会话对端的用户UserId
}
// 查询单聊未读消息计数(响应)
getUnreadMessageNumResp struct {
types.ActionBaseResp
AllUnreadMsgNum int `json:"AllC2CUnreadMsgNum"` // 单聊消息总未读数
PeerUnreadMsgNums []unreadMessageNum `json:"C2CUnreadMsgNumList"` // 单聊消息未读对端列表
PeerErrors []*UnreadMessageError `json:"ErrorList"` // 查询错误列表
}
// 未读消息数
unreadMessageNum struct {
UserId string `json:"Peer_Account"` // 单聊会话对端UserId
UnreadMsgNum int `json:"C2CUnreadMsgNum"` // 该单聊会话的未读数
}
// 查询错误项
UnreadMessageError struct {
UserId string `json:"Peer_Account"` // 查询错误的目标UserId
ErrorCode int `json:"ErrorCode"` // 查询错误的错误码。若目标帐号的错误码为70107表示该帐号不存在
}
// GetUnreadMessageNumRet 未读消息结果
GetUnreadMessageNumRet struct {
Total int // 单聊消息总未读数
Results map[string]int // 未读消息数列表
Errors []*UnreadMessageError // 错误消息列表
}
ImageInfo = types.ImageInfo
MsgTextContent = types.MsgTextContent
MsgFaceContent = types.MsgFaceContent
MsgFileContent = types.MsgFileContent
MsgImageContent = types.MsgImageContent
MsgSoundContent = types.MsgSoundContent
MsgVideoContent = types.MsgVideoContent
MsgCustomContent = types.MsgCustomContent
MsgLocationContent = types.MsgLocationContent
)