syncmsg.go 3.2 KB

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