forked from xen0n/go-workwx
-
Notifications
You must be signed in to change notification settings - Fork 0
/
kf.md.go
159 lines (148 loc) · 8.08 KB
/
kf.md.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
// Code generated by sdkcodegen; DO NOT EDIT.
package workwx
// KfAccount 客服账号
type KfAccount struct {
// OpenKfID 客服账号ID
OpenKfID string `json:"open_kfid"`
// Name 客服名称
Name string `json:"name"`
// Avatar 客服头像URL
Avatar string `json:"avatar"`
// ManagePrivilege 当前调用接口的应用身份,是否有该客服账号的管理权限(编辑客服账号信息、分配会话和收发消息)。组件应用不返回此字段
ManagePrivilege bool `json:"manage_privilege,omitempty"`
}
// KfServicer 客服接待人员
type KfServicer struct {
// UserID 接待人员的userid。第三方应用获取到的为密文userid,即open_userid
UserID string `json:"userid,omitempty"`
// Status 接待人员的接待状态。0:接待中,1:停止接待。
Status int `json:"status"`
// StopType 接待人员的接待状态为「停止接待」的子类型。0:停止接待,1:暂时挂起
StopType int `json:"stop_type"`
// DepartmentID 接待人员部门的id
DepartmentID int64 `json:"department_id,omitempty"`
}
// KfServicerResult 接待人员数据
type KfServicerResult struct {
// UserID 接待人员的userid
UserID string `json:"userid,omitempty"`
// DepartmentID 接待人员部门的id
DepartmentID int64 `json:"department_id,omitempty"`
// ErrCode 该条记录的结果
ErrCode int64 `json:"errcode"`
// ErrMsg 结果信息
ErrMsg string `json:"errmsg"`
}
// KfMsg 客服消息数据
type KfMsg struct {
// MsgID 消息ID
MsgID string `json:"msgid,omitempty"`
// OpenKfID 客服账号ID(msgtype为event,该字段不返回)
OpenKfID string `json:"open_kfid,omitempty"`
// ExternalUserID 客客户UserID(msgtype为event,该字段不返回)
ExternalUserID string `json:"external_userid,omitempty"`
// SendTime 消息发送时间
SendTime int64 `json:"send_time,omitempty"`
// Origin 消息来源。3-微信客户发送的消息 4-系统推送的事件消息 5-接待人员在企业微信客户端发送的消息
Origin int `json:"origin,omitempty"`
// ServicerUserID 从企业微信给客户发消息的接待人员userid(即仅origin为5才返回;msgtype为event,该字段不返回)
ServicerUserID string `json:"servicer_userid,omitempty"`
// MsgType 消息类型
MsgType MessageType `json:"msgtype"`
// Text 文本消息
Text Text `json:"text,omitempty"`
// Image 图片消息
Image Image `json:"image,omitempty"`
// Link 链接消息
Link Link `json:"link,omitempty"`
// MiniProgram 小程序消息
MiniProgram MiniProgram `json:"mini_program,omitempty"`
// Event 事件类型
Event KfEvent `json:"event,omitempty"`
}
// KfEvent 客服会话事件
type KfEvent struct {
// EventType 事件类型
EventType KfEventType `json:"event_type"`
// OpenKfID 客服账号ID
OpenKfID string `json:"open_kfid"`
// ExternalUserID 客户UserID,注意不是企业成员的帐号
ExternalUserID string `json:"external_userid,omitempty"`
// ServicerUserID 接待人员userid
ServicerUserID string `json:"servicer_userid,omitempty"`
// Scene 用户进入会话事件特有。进入会话的场景值,获取客服账号链接开发者自定义的场景值
Scene string `json:"scene,omitempty"`
// SceneParam 用户进入会话事件特有。进入会话的自定义参数,获取客服账号链接返回的url,开发者按规范拼接的scene_param参数
SceneParam string `json:"scene_param,omitempty"`
// WelcomeCode 用户进入会话事件特有。如果满足发送欢迎语条件(条件为:用户在过去48小时里未收过欢迎语,且未向客服发过消息),会返回该字段。可用该welcome_code调用发送事件响应消息接口给客户发送欢迎语。
WelcomeCode string `json:"welcome_code,omitempty"`
// WechatChannels 用户进入会话事件特有。进入会话的视频号信息,从视频号进入会话才有值
WechatChannels KfWechatChannels `json:"wechat_channels,omitempty"`
// FailMsgID 消息发送失败事件特有。发送失败的消息msgid
FailMsgID string `json:"fail_msgid,omitempty"`
// FailType 消息发送失败事件特有。失败类型。0-未知原因 1-客服账号已删除 2-应用已关闭 4-会话已过期,超过48小时 5-会话已关闭 6-超过5条限制 8-主体未验证 10-用户拒收 11-企业未有成员登录企业微信App(排查方法:企业至少一个成员通过手机号验证/微信授权登录企业微信App即可)12-发送的消息为客服组件禁发的消息类型
FailType int `json:"fail_type,omitempty"`
// Status 接待人员接待状态变更事件特有。状态类型。1-接待中 2-停止接待
Status int `json:"status,omitempty"`
// StopType 接待人员接待状态变更事件特有。接待人员的状态为「停止接待」的子类型。0:停止接待,1:暂时挂起
StopType int `json:"stop_type,omitempty"`
// ChangeType 会话状态变更事件特有。变更类型,均为接待人员在企业微信客户端操作触发。1-从接待池接入会话 2-转接会话 3-结束会话 4-重新接入已结束/已转接会话
ChangeType KfServiceState `json:"change_type,omitempty"`
// OldServicerUserID 会话状态变更事件特有。老的接待人员userid。仅change_type为2、3和4有值
OldServicerUserID string `json:"old_servicer_userid,omitempty"`
// NewServicerUserid 会话状态变更事件特有。新的接待人员userid。仅change_type为1、2和4有值
NewServicerUserid string `json:"new_servicer_userid,omitempty"`
// MsgCode 会话状态变更事件特有。用于发送事件响应消息的code,仅change_type为1和3时,会返回该字段。可用该msg_code调用发送事件响应消息接口给客户发送回复语或结束语。
MsgCode string `json:"msg_code,omitempty"`
// RecallMsgID 撤回消息事件特有。 撤回的消息msgid
RecallMsgID string `json:"recall_msgid,omitempty"`
// RejectSwitch 拒收客户消息变更事件特有。 拒收客户消息,1表示接待人员拒收了客户消息,0表示接待人员取消拒收客户消息
RejectSwitch int `json:"reject_switch,omitempty"`
}
// KfWechatChannels 进入会话的视频号信息,从视频号进入会话才有值
type KfWechatChannels struct {
// NickName 视频号名称,视频号场景值为1、2、3时返回此项
NickName string `json:"nickname,omitempty"`
// ShopNickName 视频号小店名称,视频号场景值为4、5时返回此项
ShopNickName string `json:"shop_nickname,omitempty"`
// Scene 视频号场景值。1:视频号主页,2:视频号直播间商品列表页,3:视频号商品橱窗页,4:视频号小店商品详情页,5:视频号小店订单页
Scene int64 `json:"scene"`
}
// KfEventType 事件类型
type KfEventType string
const (
// KfEventTypeEnterSession 用户进入会话事件
KfEventTypeEnterSession KfEventType = "enter_session"
// KfEventTypeMsgSendFail 消息发送失败事件
KfEventTypeMsgSendFail KfEventType = "msg_send_fail"
// KfEventTypeServicerStatusChange 接待人员接待状态变更事件
KfEventTypeServicerStatusChange KfEventType = "servicer_status_change"
// KfEventTypeSessionStatusChange 会话状态变更事件
KfEventTypeSessionStatusChange KfEventType = "session_status_change"
// KfEventTypeUserRecallMsg 用户撤回消息事件
KfEventTypeUserRecallMsg KfEventType = "user_recall_msg"
// KfEventTypeServicerRecallMsg 接待人员撤回消息事件
KfEventTypeServicerRecallMsg KfEventType = "servicer_recall_msg"
// KfEventTypeRejectCustomerMsgSwitchChange 拒收客户消息变更事件
KfEventTypeRejectCustomerMsgSwitchChange KfEventType = "reject_customer_msg_switch_change"
)
// KfServiceState 客服会话状态
//
// 0 未处理 新会话接入
// 1 由智能助手接待
// 2 待接入池排队中
// 3 由人工接待
// 4 已结束/未开始
type KfServiceState int
const (
// KfServiceStateUntreated 未处理 新会话接入
KfServiceStateUntreated KfServiceState = iota
// KfServiceStateRobotReception 由智能助手接待
KfServiceStateRobotReception
// KfServiceStateInQueue 待接入池排队中
KfServiceStateInQueue
// KfServiceStateManualReception 由人工接待
KfServiceStateManualReception
// KfServiceStateFinished 已结束/未开始
KfServiceStateFinished
)