|
|
@@ -0,0 +1,352 @@
|
|
|
+package msgaudit
|
|
|
+
|
|
|
+// BaseMessage 基础消息
|
|
|
+type BaseMessage struct {
|
|
|
+ MsgID string `json:"msgid,omitempty"` // 消息id,消息的唯一标识,企业可以使用此字段进行消息去重。
|
|
|
+ Action string `json:"action,omitempty"` // 消息动作,目前有send(发送消息)/recall(撤回消息)/switch(切换企业日志)三种类型。
|
|
|
+ From string `json:"from,omitempty"` // 消息发送方id。同一企业内容为userid,非相同企业为external_userid。消息如果是机器人发出,也为external_userid。
|
|
|
+ ToList []string `json:"tolist,omitempty"` // 消息接收方列表,可能是多个,同一个企业内容为userid,非相同企业为external_userid。
|
|
|
+ RoomID string `json:"roomid,omitempty"` // 群聊消息的群id。如果是单聊则为空。
|
|
|
+ MsgTime int64 `json:"msgtime,omitempty"` // 消息发送时间戳,utc时间,ms单位。
|
|
|
+ MsgType string `json:"msgtype,omitempty"` // 文本消息为:text。
|
|
|
+}
|
|
|
+
|
|
|
+// TextMessage 文本消息
|
|
|
+type TextMessage struct {
|
|
|
+ BaseMessage
|
|
|
+ Text struct {
|
|
|
+ Content string `json:"content,omitempty"` // 消息内容。
|
|
|
+ } `json:"text,omitempty"`
|
|
|
+}
|
|
|
+
|
|
|
+// ImageMessage 图片消息
|
|
|
+type ImageMessage struct {
|
|
|
+ BaseMessage
|
|
|
+ Image struct {
|
|
|
+ SdkFileID string `json:"sdkfileid,omitempty"` // 媒体资源的id信息。
|
|
|
+ Md5Sum string `json:"md5sum,omitempty"` // 图片资源的md5值,供进行校验。
|
|
|
+ FileSize uint32 `json:"filesize,omitempty"` // 图片资源的文件大小。
|
|
|
+ } `json:"image,omitempty"`
|
|
|
+}
|
|
|
+
|
|
|
+// RevokeMessage 撤回消息
|
|
|
+type RevokeMessage struct {
|
|
|
+ BaseMessage
|
|
|
+ Revoke struct {
|
|
|
+ PreMsgID string `json:"pre_msgid,omitempty"` // 标识撤回的原消息的msgid
|
|
|
+ } `json:"revoke,omitempty"`
|
|
|
+}
|
|
|
+
|
|
|
+// AgreeMessage 同意会话聊天内容
|
|
|
+type AgreeMessage struct {
|
|
|
+ BaseMessage
|
|
|
+ Agree struct {
|
|
|
+ UserID string `json:"userid,omitempty"` // 同意/不同意协议者的userid,外部企业默认为external_userid。
|
|
|
+ AgreeTime int64 `json:"agree_time,omitempty"` // 同意/不同意协议的时间,utc时间,ms单位。
|
|
|
+ } `json:"agree,omitempty"`
|
|
|
+}
|
|
|
+
|
|
|
+// VoiceMessage 语音消息
|
|
|
+type VoiceMessage struct {
|
|
|
+ BaseMessage
|
|
|
+ Voice struct {
|
|
|
+ SdkFileID string `json:"sdkfileid,omitempty"` // 媒体资源的id信息。
|
|
|
+ VoiceSize uint32 `json:"voice_size,omitempty"` // 语音消息大小。
|
|
|
+ PlayLength uint32 `json:"play_length,omitempty"` // 播放长度。
|
|
|
+ Md5Sum string `json:"md5sum,omitempty"` // 图片资源的md5值,供进行校验。
|
|
|
+ } `json:"voice,omitempty"`
|
|
|
+}
|
|
|
+
|
|
|
+// VideoMessage 视频消息
|
|
|
+type VideoMessage struct {
|
|
|
+ BaseMessage
|
|
|
+ Video struct {
|
|
|
+ SdkFileID string `json:"sdkfileid,omitempty"` // 媒体资源的id信息。
|
|
|
+ FileSize uint32 `json:"filesize,omitempty"` // 图片资源的文件大小。
|
|
|
+ PlayLength uint32 `json:"play_length,omitempty"` // 播放长度。
|
|
|
+ Md5Sum string `json:"md5sum,omitempty"` // 图片资源的md5值,供进行校验。
|
|
|
+ } `json:"video,omitempty"`
|
|
|
+}
|
|
|
+
|
|
|
+// CardMessage 名片消息
|
|
|
+type CardMessage struct {
|
|
|
+ BaseMessage
|
|
|
+ Card struct {
|
|
|
+ CorpName string `json:"corpname,omitempty"` // 名片所有者所在的公司名称。
|
|
|
+ UserID string `json:"userid,omitempty"` // 名片所有者的id,同一公司是userid,不同公司是external_userid
|
|
|
+ } `json:"card,omitempty"`
|
|
|
+}
|
|
|
+
|
|
|
+// LocationMessage 位置消息
|
|
|
+type LocationMessage struct {
|
|
|
+ BaseMessage
|
|
|
+ Location struct {
|
|
|
+ Lng float64 `json:"longitude,omitempty"` // 经度,单位double
|
|
|
+ Lat float64 `json:"latitude,omitempty"` // 纬度,单位double
|
|
|
+ Address string `json:"address,omitempty"` // 地址信息
|
|
|
+ Title string `json:"title,omitempty"` // 位置信息的title。
|
|
|
+ Zoom uint32 `json:"zoom,omitempty"` // 缩放比例。
|
|
|
+ } `json:"location,omitempty"`
|
|
|
+}
|
|
|
+
|
|
|
+// EmotionMessage 表情消息
|
|
|
+type EmotionMessage struct {
|
|
|
+ BaseMessage
|
|
|
+ Emotion struct {
|
|
|
+ Type uint32 `json:"type,omitempty"` // 表情类型,png或者gif.1表示gif 2表示png。
|
|
|
+ Width uint32 `json:"width,omitempty"` // 表情图片宽度。
|
|
|
+ Height uint32 `json:"height,omitempty"` // 表情图片高度。
|
|
|
+ ImageSize uint32 `json:"imagesize,omitempty"` // 资源的文件大小。
|
|
|
+ SdkFileID string `json:"sdkfileid,omitempty"` // 媒体资源的id信息。
|
|
|
+ Md5Sum string `json:"md5sum,omitempty"` // 图片资源的md5值,供进行校验。
|
|
|
+ } `json:"emotion,omitempty"`
|
|
|
+}
|
|
|
+
|
|
|
+// FileMessage 文件消息
|
|
|
+type FileMessage struct {
|
|
|
+ BaseMessage
|
|
|
+ File struct {
|
|
|
+ FileName string `json:"filename,omitempty"` // 文件名称。
|
|
|
+ FileExt string `json:"fileext,omitempty"` // 文件类型后缀。
|
|
|
+ SdkFileID string `json:"sdkfileid,omitempty"` // 媒体资源的id信息。
|
|
|
+ FileSize uint32 `json:"filesize,omitempty"` // 文件大小。
|
|
|
+ Md5Sum string `json:"md5sum,omitempty"` // 资源的md5值,供进行校验。
|
|
|
+ } `json:"file,omitempty"`
|
|
|
+}
|
|
|
+
|
|
|
+// LinkMessage 链接消息
|
|
|
+type LinkMessage struct {
|
|
|
+ BaseMessage
|
|
|
+ Link struct {
|
|
|
+ Title string `json:"title,omitempty"` // 消息标题。
|
|
|
+ Desc string `json:"description,omitempty"` // 消息描述。
|
|
|
+ LinkURL string `json:"link_url,omitempty"` // 链接url地址
|
|
|
+ ImageURL string `json:"image_url,omitempty"` // 链接图片url。
|
|
|
+ } `json:"link,omitempty"`
|
|
|
+}
|
|
|
+
|
|
|
+// WeappMessage 小程序消息
|
|
|
+type WeappMessage struct {
|
|
|
+ BaseMessage
|
|
|
+ WeApp struct {
|
|
|
+ Title string `json:"title,omitempty"` // 消息标题。
|
|
|
+ Desc string `json:"description,omitempty"` // 消息描述。
|
|
|
+ Username string `json:"username,omitempty"` // 用户名称。
|
|
|
+ DisplayName string `json:"displayname,omitempty"` // 小程序名称
|
|
|
+ } `json:"weapp,omitempty"`
|
|
|
+}
|
|
|
+
|
|
|
+// ChatRecordMessage 会话记录消息
|
|
|
+type ChatRecordMessage struct {
|
|
|
+ BaseMessage
|
|
|
+ ChatRecord struct {
|
|
|
+ Title string `json:"title,omitempty"` // 聊天记录标题
|
|
|
+ Item []ChatRecord `json:"item,omitempty"` // 消息记录内的消息内容,批量数据
|
|
|
+ } `json:"chatrecord,omitempty"`
|
|
|
+}
|
|
|
+
|
|
|
+// TodoMessage 待办消息
|
|
|
+type TodoMessage struct {
|
|
|
+ BaseMessage
|
|
|
+ Todo struct {
|
|
|
+ Title string `json:"title,omitempty"` // 代办的来源文本
|
|
|
+ Content string `json:"content,omitempty"` // 代办的具体内容
|
|
|
+ } `json:"todo,omitempty"`
|
|
|
+}
|
|
|
+
|
|
|
+// VoteMessage 投票消息
|
|
|
+type VoteMessage struct {
|
|
|
+ BaseMessage
|
|
|
+ VoteTitle string `json:"votetitle,omitempty"` // 投票主题。
|
|
|
+ VoteItem []string `json:"voteitem,omitempty"` // 投票选项,可能多个内容。
|
|
|
+ VoteType uint32 `json:"votetype,omitempty"` // 投票类型.101发起投票、102参与投票。
|
|
|
+ VoteID string `json:"voteid,omitempty"` // 投票id,方便将参与投票消息与发起投票消息进行前后对照。
|
|
|
+}
|
|
|
+
|
|
|
+// CollectMessage 填表消息
|
|
|
+type CollectMessage struct {
|
|
|
+ BaseMessage
|
|
|
+ Collect struct {
|
|
|
+ RoomName string `json:"room_name,omitempty"` // 填表消息所在的群名称。
|
|
|
+ Creator string `json:"creator,omitempty"` // 创建者在群中的名字
|
|
|
+ CreateTime string `json:"create_time,omitempty"` // 创建的时间
|
|
|
+ Details []CollectDetails `json:"details,omitempty"` // 表内容
|
|
|
+ } `json:"collect,omitempty"`
|
|
|
+}
|
|
|
+
|
|
|
+// RedpacketMessage 红包消息
|
|
|
+type RedpacketMessage struct {
|
|
|
+ BaseMessage
|
|
|
+ RedPacket struct {
|
|
|
+ Type uint32 `json:"type,omitempty"` // 红包消息类型。1 普通红包、2 拼手气群红包、3 激励群红包。
|
|
|
+ Wish string `json:"wish,omitempty"` // 红包祝福语
|
|
|
+ TotalCnt uint32 `json:"totalcnt,omitempty"` // 红包总个数
|
|
|
+ TotalAmount uint32 `json:"totalamount,omitempty"` // 红包总金额。单位为分。
|
|
|
+ } `json:"redpacket,omitempty"`
|
|
|
+}
|
|
|
+
|
|
|
+// MeetingMessage 会议邀请消息
|
|
|
+type MeetingMessage struct {
|
|
|
+ BaseMessage
|
|
|
+ Meeting struct {
|
|
|
+ Topic string `json:"topic,omitempty"` // 会议主题
|
|
|
+ StartTime int64 `json:"starttime,omitempty"` // 会议开始时间。Utc时间
|
|
|
+ EndTime int64 `json:"endtime,omitempty"` // 会议结束时间。Utc时间
|
|
|
+ Address string `json:"address,omitempty"` // 会议地址
|
|
|
+ Remarks string `json:"remarks,omitempty"` // 会议备注
|
|
|
+ MeetingType uint32 `json:"meetingtype,omitempty"` // 会议消息类型。101发起会议邀请消息、102处理会议邀请消息
|
|
|
+ MeetingID uint64 `json:"meetingid,omitempty"` // 会议id。方便将发起、处理消息进行对照
|
|
|
+ Status uint32 `json:"status,omitempty"` // 会议邀请处理状态。1 参加会议、2 拒绝会议、3 待定、4 未被邀请、5 会议已取消、6 会议已过期、7 不在房间内。
|
|
|
+ } `json:"meeting,omitempty"`
|
|
|
+}
|
|
|
+
|
|
|
+// DocMessage 在线文档消息
|
|
|
+type DocMessage struct {
|
|
|
+ BaseMessage
|
|
|
+ Doc struct {
|
|
|
+ Title string `json:"title,omitempty"` // 在线文档名称
|
|
|
+ LinkURL string `json:"link_url,omitempty"` // 在线文档链接
|
|
|
+ DocCreator string `json:"doc_creator,omitempty"` // 在线文档创建者。本企业成员创建为userid;外部企业成员创建为external_userid
|
|
|
+ } `json:"doc,omitempty"`
|
|
|
+}
|
|
|
+
|
|
|
+// MarkdownMessage MarkDown消息
|
|
|
+type MarkdownMessage struct {
|
|
|
+ BaseMessage
|
|
|
+ Info struct {
|
|
|
+ Content string `json:"content,omitempty"` // markdown消息内容,目前为机器人发出的消息
|
|
|
+ } `json:"info,omitempty"`
|
|
|
+}
|
|
|
+
|
|
|
+// NewsMessage 图文消息
|
|
|
+type NewsMessage struct {
|
|
|
+ BaseMessage
|
|
|
+ Info struct {
|
|
|
+ Item []News `json:"item,omitempty"` // 图文消息数组
|
|
|
+ } `json:"info,omitempty"` // 图文消息的内容
|
|
|
+}
|
|
|
+
|
|
|
+// CalendarMessage 日程消息
|
|
|
+type CalendarMessage struct {
|
|
|
+ BaseMessage
|
|
|
+ Calendar struct {
|
|
|
+ Title string `json:"title,omitempty"` // 日程主题
|
|
|
+ CreatorName string `json:"creatorname,omitempty"` // 日程组织者
|
|
|
+ AttendeeName []string `json:"attendeename,omitempty"` // 日程参与人。数组,内容为String类型
|
|
|
+ StartTime int64 `json:"starttime,omitempty"` // 日程开始时间。Utc时间,单位秒
|
|
|
+ EndTime int64 `json:"endtime,omitempty"` // 日程结束时间。Utc时间,单位秒
|
|
|
+ Place string `json:"place,omitempty"` // 日程地点
|
|
|
+ Remarks string `json:"remarks,omitempty"` // 日程备注
|
|
|
+ } `json:"calendar,omitempty"`
|
|
|
+}
|
|
|
+
|
|
|
+// MixedMessage 混合消息
|
|
|
+type MixedMessage struct {
|
|
|
+ BaseMessage
|
|
|
+ Mixed struct {
|
|
|
+ Item []MixedMsg `json:"item,omitempty"`
|
|
|
+ } `json:"mixed,omitempty"` // 消息内容。可包含图片、文字、表情等多种消息。Object类型
|
|
|
+}
|
|
|
+
|
|
|
+// MeetingVoiceCallMessage 音频存档消息
|
|
|
+type MeetingVoiceCallMessage struct {
|
|
|
+ BaseMessage
|
|
|
+ VoiceID string `json:"voiceid,omitempty"` // 音频id
|
|
|
+ MeetingVoiceCall *MeetingVoiceCall `json:"meeting_voice_call,omitempty"` // 音频消息内容。包括结束时间、fileid,可能包括多个demofiledata、sharescreendata消息,demofiledata表示文档共享信息,sharescreendata表示屏幕共享信息。Object类型
|
|
|
+}
|
|
|
+
|
|
|
+// VoipDocShareMessage 音频共享消息
|
|
|
+type VoipDocShareMessage struct {
|
|
|
+ BaseMessage
|
|
|
+ VoipID string `json:"voipid,omitempty"` // 音频id
|
|
|
+ VoipDocShare *VoipDocShare `json:"voip_doc_share,omitempty"` // 共享文档消息内容。包括filename、md5sum、filesize、sdkfileid字段。Object类型
|
|
|
+}
|
|
|
+
|
|
|
+// ExternalRedPacketMessage 互通小红包消息
|
|
|
+type ExternalRedPacketMessage struct {
|
|
|
+ BaseMessage
|
|
|
+ RedPacket struct {
|
|
|
+ Type int32 `json:"type,omitempty"` // 红包消息类型。1 普通红包、2 拼手气群红包。Uint32类型
|
|
|
+ Wish int32 `json:"wish,omitempty"` // 红包祝福语。String类型
|
|
|
+ TotalCnt int32 `json:"totalcnt,omitempty"` // 红包总个数。Uint32类型
|
|
|
+ TotalAmount int32 `json:"totalamount,omitempty"` // 红包消息类型。1 普通红包、2 拼手气群红包。Uint32类型
|
|
|
+ } `json:"redpacket,omitempty"`
|
|
|
+}
|
|
|
+
|
|
|
+// SphFeedMessage 视频号消息
|
|
|
+type SphFeedMessage struct {
|
|
|
+ BaseMessage
|
|
|
+ SphFeed struct {
|
|
|
+ FeedType string `json:"feed_type,omitempty"` // 视频号消息类型
|
|
|
+ SphName string `json:"sph_name,omitempty"` // 视频号账号名称
|
|
|
+ FeedDesc uint64 `json:"feed_desc,omitempty"` // 视频号账号名称
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// SwitchMessage 企业切换日志
|
|
|
+type SwitchMessage struct {
|
|
|
+ MsgID string `json:"msgid,omitempty"` // 消息id,消息的唯一标识,企业可以使用此字段进行消息去重
|
|
|
+ Action string `json:"action,omitempty"` // 消息动作,切换企业为switch
|
|
|
+ Time int64 `json:"time,omitempty"` // 消息发送时间戳,utc时间,ms单位。
|
|
|
+ User string `json:"user,omitempty"` // 具体为切换企业的成员的userid。
|
|
|
+}
|
|
|
+
|
|
|
+// ChatRecord 会话记录消息
|
|
|
+type ChatRecord struct {
|
|
|
+ Type string `json:"type,omitempty"` // 每条聊天记录的具体消息类型:ChatRecordText/ ChatRecordFile/ ChatRecordImage/ ChatRecordVideo/ ChatRecordLink/ ChatRecordLocation/ ChatRecordMixed ….
|
|
|
+ Content string `json:"content,omitempty"` // 消息内容。Json串,内容为对应类型的json
|
|
|
+ MsgTime int64 `json:"msgtime,omitempty"` // 消息时间,utc时间,ms单位。
|
|
|
+ FromChatroom bool `json:"from_chatroom,omitempty"` // 是否来自群会话。
|
|
|
+}
|
|
|
+
|
|
|
+// CollectDetails 填表消息
|
|
|
+type CollectDetails struct {
|
|
|
+ ID uint64 `json:"id,omitempty"` // 表项id
|
|
|
+ Ques string `json:"ques,omitempty"` // 表项名称
|
|
|
+ Type string `json:"type,omitempty"` // 表项类型,有Text(文本),Number(数字),Date(日期),Time(时间)
|
|
|
+}
|
|
|
+
|
|
|
+// News 图文消息
|
|
|
+type News struct {
|
|
|
+ Title string `json:"title,omitempty"` // 图文消息标题
|
|
|
+ Desc string `json:"description,omitempty"` // 图文消息描述
|
|
|
+ URL string `json:"url,omitempty"` // 图文消息点击跳转地址
|
|
|
+ PicURL string `json:"picurl,omitempty"` // 图文消息配图的url
|
|
|
+}
|
|
|
+
|
|
|
+// MixedMsg 混合消息
|
|
|
+type MixedMsg struct {
|
|
|
+ Type string `json:"type,omitempty"`
|
|
|
+ Content string `json:"content,omitempty"`
|
|
|
+}
|
|
|
+
|
|
|
+// MeetingVoiceCall 音频存档消息
|
|
|
+type MeetingVoiceCall struct {
|
|
|
+ EndTime int64 `json:"endtime,omitempty"` // 音频结束时间
|
|
|
+ SdkFileID string `json:"sdkfileid,omitempty"` // 音频媒体下载的id
|
|
|
+ DemoFileData []DemoFileData `json:"demofiledata,omitempty"` // 文档分享对象,Object类型
|
|
|
+ ShareScreenData []ShareScreenData `json:"sharescreendata,omitempty"` // 屏幕共享对象,Object类型
|
|
|
+}
|
|
|
+
|
|
|
+// DemoFileData 文档共享消息
|
|
|
+type DemoFileData struct {
|
|
|
+ FileName string `json:"filename,omitempty"` // 文档共享名称
|
|
|
+ DemoOperator string `json:"demooperator,omitempty"` // 文档共享操作用户的id
|
|
|
+ StartTime int64 `json:"starttime,omitempty"` // 文档共享开始时间
|
|
|
+ EndTime int64 `json:"endtime,omitempty"` // 文档共享结束时间
|
|
|
+}
|
|
|
+
|
|
|
+// ShareScreenData 屏幕共享信息
|
|
|
+type ShareScreenData struct {
|
|
|
+ Share string `json:"share,omitempty"` // 屏幕共享用户的id
|
|
|
+ StartTime int64 `json:"starttime,omitempty"` // 屏幕共享开始时间
|
|
|
+ EndTime int64 `json:"endtime,omitempty"` // 屏幕共享结束时间
|
|
|
+}
|
|
|
+
|
|
|
+// VoipDocShare 音频共享文档消息
|
|
|
+type VoipDocShare struct {
|
|
|
+ FileName string `json:"filename,omitempty"` // 文档共享文件名称
|
|
|
+ Md5Sum string `json:"md5sum,omitempty"` // 共享文件的md5值
|
|
|
+ FileSize uint64 `json:"filesize,omitempty"` // 共享文件的大小
|
|
|
+ SdkFileID string `json:"sdkfileid,omitempty"` // 共享文件的sdkfile,通过此字段进行媒体数据下载
|
|
|
+}
|