193 lines
12 KiB
Go
193 lines
12 KiB
Go
/**
|
||
* @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
|
||
)
|