chat.go 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. package msgaudit
  2. import "encoding/json"
  3. // ChatDataResponse 会话存档消息响应数据
  4. type ChatDataResponse struct {
  5. Error
  6. ChatDataList []ChatData `json:"chatdata,omitempty"`
  7. }
  8. // IsError 判断是否正确响应
  9. func (c ChatDataResponse) IsError() bool {
  10. return c.ErrCode != 0
  11. }
  12. // ChatData 会话存档原始数据
  13. type ChatData struct {
  14. Seq uint64 `json:"seq,omitempty"` // 消息的seq值,标识消息的序号。再次拉取需要带上上次回包中最大的seq。Uint64类型,范围0-pow(2,64)-1
  15. MsgID string `json:"msgid,omitempty"` // 消息id,消息的唯一标识,企业可以使用此字段进行消息去重。
  16. PublickeyVer uint32 `json:"publickey_ver,omitempty"` // 加密此条消息使用的公钥版本号。
  17. EncryptRandomKey string `json:"encrypt_random_key,omitempty"` // 使用publickey_ver指定版本的公钥进行非对称加密后base64加密的内容,需要业务方先base64 decode处理后,再使用指定版本的私钥进行解密,得出内容。
  18. EncryptChatMsg string `json:"encrypt_chat_msg,omitempty"` // 消息密文。需要业务方使用将encrypt_random_key解密得到的内容,与encrypt_chat_msg,传入sdk接口DecryptData,得到消息明文。
  19. }
  20. // ChatMessage 会话存档消息
  21. type ChatMessage struct {
  22. ID string // 消息id,消息的唯一标识,企业可以使用此字段进行消息去重。
  23. From string // 消息发送方id。同一企业内容为userid,非相同企业为external_userid。消息如果是机器人发出,也为external_userid。
  24. ToList []string // 消息接收方列表,可能是多个,同一个企业内容为userid,非相同企业为external_userid。
  25. Action string // 消息动作,目前有send(发送消息)/recall(撤回消息)/switch(切换企业日志)三种类型。
  26. Type string // 消息类型
  27. originData []byte // 原始消息对象
  28. }
  29. // GetOriginMessage 获取消息原始数据
  30. func (c ChatMessage) GetOriginMessage() (msg map[string]interface{}, err error) {
  31. err = json.Unmarshal(c.originData, &msg)
  32. return msg, err
  33. }
  34. // GetTextMessage 获取文本消息
  35. func (c ChatMessage) GetTextMessage() (msg TextMessage, err error) {
  36. err = json.Unmarshal(c.originData, &msg)
  37. return msg, err
  38. }
  39. // GetImageMessage 获取图片消息
  40. func (c ChatMessage) GetImageMessage() (msg ImageMessage, err error) {
  41. err = json.Unmarshal(c.originData, &msg)
  42. return msg, err
  43. }
  44. // GetRevokeMessage 获取撤回消息
  45. func (c ChatMessage) GetRevokeMessage() (msg RevokeMessage, err error) {
  46. err = json.Unmarshal(c.originData, &msg)
  47. return msg, err
  48. }
  49. // GetAgreeMessage 获取同意会话聊天内容
  50. func (c ChatMessage) GetAgreeMessage() (msg AgreeMessage, err error) {
  51. err = json.Unmarshal(c.originData, &msg)
  52. return msg, err
  53. }
  54. // GetVoiceMessage 获取语音消息
  55. func (c ChatMessage) GetVoiceMessage() (msg VoiceMessage, err error) {
  56. err = json.Unmarshal(c.originData, &msg)
  57. return msg, err
  58. }
  59. // GetVideoMessage 获取视频消息
  60. func (c ChatMessage) GetVideoMessage() (msg VideoMessage, err error) {
  61. err = json.Unmarshal(c.originData, &msg)
  62. return msg, err
  63. }
  64. // GetCardMessage 获取名片消息
  65. func (c ChatMessage) GetCardMessage() (msg CardMessage, err error) {
  66. err = json.Unmarshal(c.originData, &msg)
  67. return msg, err
  68. }
  69. // GetLocationMessage 获取位置消息
  70. func (c ChatMessage) GetLocationMessage() (msg LocationMessage, err error) {
  71. err = json.Unmarshal(c.originData, &msg)
  72. return msg, err
  73. }
  74. // GetEmotionMessage 获取表情消息
  75. func (c ChatMessage) GetEmotionMessage() (msg EmotionMessage, err error) {
  76. err = json.Unmarshal(c.originData, &msg)
  77. return msg, err
  78. }
  79. // GetFileMessage 获取文件消息
  80. func (c ChatMessage) GetFileMessage() (msg FileMessage, err error) {
  81. err = json.Unmarshal(c.originData, &msg)
  82. return msg, err
  83. }
  84. // GetLinkMessage 获取链接消息
  85. func (c ChatMessage) GetLinkMessage() (msg LinkMessage, err error) {
  86. err = json.Unmarshal(c.originData, &msg)
  87. return msg, err
  88. }
  89. // GetWeappMessage 获取小程序消息
  90. func (c ChatMessage) GetWeappMessage() (msg WeappMessage, err error) {
  91. err = json.Unmarshal(c.originData, &msg)
  92. return msg, err
  93. }
  94. // GetChatRecordMessage 获取会话记录消息
  95. func (c ChatMessage) GetChatRecordMessage() (msg ChatRecordMessage, err error) {
  96. err = json.Unmarshal(c.originData, &msg)
  97. return msg, err
  98. }
  99. // GetTodoMessage 获取待办消息
  100. func (c ChatMessage) GetTodoMessage() (msg TodoMessage, err error) {
  101. err = json.Unmarshal(c.originData, &msg)
  102. return msg, err
  103. }
  104. // GetVoteMessage 获取投票消息
  105. func (c ChatMessage) GetVoteMessage() (msg VoteMessage, err error) {
  106. err = json.Unmarshal(c.originData, &msg)
  107. return msg, err
  108. }
  109. // GetCollectMessage 获取填表消息
  110. func (c ChatMessage) GetCollectMessage() (msg CollectMessage, err error) {
  111. err = json.Unmarshal(c.originData, &msg)
  112. return msg, err
  113. }
  114. // GetRedpacketMessage 获取红包消息
  115. func (c ChatMessage) GetRedpacketMessage() (msg RedpacketMessage, err error) {
  116. err = json.Unmarshal(c.originData, &msg)
  117. return msg, err
  118. }
  119. // GetMeetingMessage 获取会议邀请消息
  120. func (c ChatMessage) GetMeetingMessage() (msg MeetingMessage, err error) {
  121. err = json.Unmarshal(c.originData, &msg)
  122. return msg, err
  123. }
  124. // GetDocMessage 获取在线文档消息
  125. func (c ChatMessage) GetDocMessage() (msg DocMessage, err error) {
  126. err = json.Unmarshal(c.originData, &msg)
  127. return msg, err
  128. }
  129. // GetMarkdownMessage 获取MarkDown格式消息
  130. func (c ChatMessage) GetMarkdownMessage() (msg MarkdownMessage, err error) {
  131. err = json.Unmarshal(c.originData, &msg)
  132. return msg, err
  133. }
  134. // GetNewsMessage 获取图文消息
  135. func (c ChatMessage) GetNewsMessage() (msg NewsMessage, err error) {
  136. err = json.Unmarshal(c.originData, &msg)
  137. return msg, err
  138. }
  139. // GetCalendarMessage 获取日程消息
  140. func (c ChatMessage) GetCalendarMessage() (msg CalendarMessage, err error) {
  141. err = json.Unmarshal(c.originData, &msg)
  142. return msg, err
  143. }
  144. // GetMixedMessage 获取混合消息
  145. func (c ChatMessage) GetMixedMessage() (msg MixedMessage, err error) {
  146. err = json.Unmarshal(c.originData, &msg)
  147. return msg, err
  148. }
  149. // GetMeetingVoiceCallMessage 获取音频存档消息
  150. func (c ChatMessage) GetMeetingVoiceCallMessage() (msg MeetingVoiceCallMessage, err error) {
  151. err = json.Unmarshal(c.originData, &msg)
  152. return msg, err
  153. }
  154. // GetVoipDocShareMessage 获取音频共享消息
  155. func (c ChatMessage) GetVoipDocShareMessage() (msg VoipDocShareMessage, err error) {
  156. err = json.Unmarshal(c.originData, &msg)
  157. return msg, err
  158. }
  159. // GetExternalRedPacketMessage 获取互通红包消息
  160. func (c ChatMessage) GetExternalRedPacketMessage() (msg ExternalRedPacketMessage, err error) {
  161. err = json.Unmarshal(c.originData, &msg)
  162. return msg, err
  163. }
  164. // GetSphFeedMessage 获取视频号消息
  165. func (c ChatMessage) GetSphFeedMessage() (msg SphFeedMessage, err error) {
  166. err = json.Unmarshal(c.originData, &msg)
  167. return msg, err
  168. }
  169. // GetSwitchMessage 获取切换企业日志
  170. func (c ChatMessage) GetSwitchMessage() (msg SwitchMessage, err error) {
  171. err = json.Unmarshal(c.originData, &msg)
  172. return msg, err
  173. }