syncmsg.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. package syncmsg
  2. import "encoding/json"
  3. // Message 同步的消息内容
  4. type Message struct {
  5. MsgID string `json:"msgid"` // 消息 ID
  6. OpenKFID string `json:"open_kfid"` // 客服帐号 ID
  7. ExternalUserID string `json:"external_userid"` // 客户 UserID
  8. ReceptionistUserID string `json:"servicer_userid"` // 接待客服 userID
  9. SendTime uint64 `json:"send_time"` // 消息发送时间
  10. Origin uint32 `json:"origin"` // 消息来源。3-客户回复的消息 4-系统推送的消 息
  11. MsgType string `json:"msgtype"` // 消息类型
  12. EventType string `json:"event_type"` // 事件类型
  13. OriginData []byte `json:"origin_data"` // 原始数据内容
  14. }
  15. // GetOriginMessage 获取原始消息
  16. func (r Message) GetOriginMessage() (info []byte) {
  17. return r.OriginData
  18. }
  19. // GetTextMessage 获取文本消息
  20. func (r Message) GetTextMessage() (info Text, err error) {
  21. err = json.Unmarshal(r.OriginData, &info)
  22. return info, err
  23. }
  24. // GetImageMessage 获取图片消息
  25. func (r Message) GetImageMessage() (info Image, err error) {
  26. err = json.Unmarshal(r.OriginData, &info)
  27. return info, err
  28. }
  29. // GetVoiceMessage 获取语音消息
  30. func (r Message) GetVoiceMessage() (info Voice, err error) {
  31. err = json.Unmarshal(r.OriginData, &info)
  32. return info, err
  33. }
  34. // GetVideoMessage 获取视频消息
  35. func (r Message) GetVideoMessage() (info Video, err error) {
  36. err = json.Unmarshal(r.OriginData, &info)
  37. return info, err
  38. }
  39. // GetFileMessage 获取文件消息
  40. func (r Message) GetFileMessage() (info File, err error) {
  41. err = json.Unmarshal(r.OriginData, &info)
  42. return info, err
  43. }
  44. // GetLocationMessage 获取文件消息
  45. func (r Message) GetLocationMessage() (info Location, err error) {
  46. err = json.Unmarshal(r.OriginData, &info)
  47. return info, err
  48. }
  49. // GetLinkMessage 获取链接消息
  50. func (r Message) GetLinkMessage() (info Link, err error) {
  51. err = json.Unmarshal(r.OriginData, &info)
  52. return info, err
  53. }
  54. // GetBusinessCardMessage 获取名片消息
  55. func (r Message) GetBusinessCardMessage() (info BusinessCard, err error) {
  56. err = json.Unmarshal(r.OriginData, &info)
  57. return info, err
  58. }
  59. // GetMiniProgramMessage 获取小程序消息
  60. func (r Message) GetMiniProgramMessage() (info MiniProgram, err error) {
  61. err = json.Unmarshal(r.OriginData, &info)
  62. return info, err
  63. }
  64. // GetEnterSessionEvent 用户进入会话事件
  65. func (r Message) GetEnterSessionEvent() (info EnterSessionEvent, err error) {
  66. err = json.Unmarshal(r.OriginData, &info)
  67. info.OpenKFID = info.Event.OpenKFID
  68. info.ExternalUserID = info.Event.ExternalUserID
  69. return info, err
  70. }
  71. // GetMsgSendFailEvent 消息发送失败事件
  72. func (r Message) GetMsgSendFailEvent() (info MsgSendFailEvent, err error) {
  73. err = json.Unmarshal(r.OriginData, &info)
  74. return info, err
  75. }
  76. // GetReceptionistStatusChangeEvent 客服人员接待状态变更事件
  77. func (r Message) GetReceptionistStatusChangeEvent() (info ReceptionistStatusChangeEvent, err error) {
  78. err = json.Unmarshal(r.OriginData, &info)
  79. return info, err
  80. }
  81. // GetSessionStatusChangeEvent 会话状态变更事件
  82. func (r Message) GetSessionStatusChangeEvent() (info SessionStatusChangeEvent, err error) {
  83. err = json.Unmarshal(r.OriginData, &info)
  84. info.OpenKFID = info.Event.OpenKFID
  85. info.ExternalUserID = info.Event.ExternalUserID
  86. return info, err
  87. }