Skip to content

Commit f47db18

Browse files
committed
Merge branch 'release/1.0.0-alpha.2'
2 parents ee982c9 + 03d4a57 commit f47db18

File tree

9 files changed

+737
-3
lines changed

9 files changed

+737
-3
lines changed

README.md

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@ in at least 2 of Qiniu's internal systems.
6565
* [x] 消息发送 (除修改群聊会话外全部支持)
6666
* [x] 消息接收 (**接口尚不稳定,极有可能做出不兼容改动,先不要用**)
6767
* [x] 素材管理 (**支持上传**, 见下)
68+
* [ ] 会话内容存档
69+
* [x] 企业微信登录接口 (code2Session)
6870

6971
<details>
7072
<summary>通讯录管理 API</summary>
@@ -109,7 +111,7 @@ in at least 2 of Qiniu's internal systems.
109111
<details>
110112
<summary>外部联系人管理 API</summary>
111113

112-
* [ ] 离职成员的外部联系人再分配
114+
113115
* [x] 成员对外信息
114116
* [x] 客户管理
115117
- [x] 获取客户列表
@@ -118,6 +120,11 @@ in at least 2 of Qiniu's internal systems.
118120
* [x] 客户标签管理
119121
- [x] 管理企业标签
120122
- [x] 编辑客户企业标签
123+
* [x] 客户分配
124+
- [x] 获取离职成员列表
125+
- [x] 分配在职或离职成员的客户
126+
- [x] 查询客户接替结果
127+
- [x] 分配离职成员的客户群
121128
* [x] 变更回调通知
122129
- [x] 添加企业客户事件
123130
- [x] 编辑企业客户事件
@@ -183,6 +190,16 @@ in at least 2 of Qiniu's internal systems.
183190

184191
</details>
185192

193+
<details>
194+
<summary>会话内容存档 API</summary>
195+
196+
* [x] 获取会话内容存档开启成员列表
197+
* [x] 获取会话同意情况
198+
* [ ] 客户同意进行聊天内容存档事件回调
199+
* [x] 获取会话内容存档内部群信息
200+
201+
</details>
202+
186203
## Notes
187204

188205
### 关于保密消息发送

apis.md.go

Lines changed: 126 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/apis.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ Name|Request Type|Response Type|Access Token|URL|Doc
77
`execGetAccessToken`|`reqAccessToken`|`respAccessToken`|-|`GET /cgi-bin/gettoken`|[获取access_token](https://work.weixin.qq.com/api/doc#90000/90135/91039)
88
`execGetJSAPITicket`|`reqJSAPITicket`|`respJSAPITicket`|+|`GET /cgi-bin/get_jsapi_ticket`|[获取企业的jsapi_ticket](https://open.work.weixin.qq.com/api/doc/90000/90136/90506)
99
`execGetJSAPITicketAgentConfig`|`reqJSAPITicketAgentConfig`|`respJSAPITicket`|+|`GET /cgi-bin/ticket/get`|[获取应用的jsapi_ticket](https://open.work.weixin.qq.com/api/doc/90000/90136/90506)
10+
`execJSCode2Session`|`reqJSCode2Session`|`respJSCode2Session`|+|`GET /cgi-bin/miniprogram/jscode2session`|[临时登录凭证校验code2Session](https://open.work.weixin.qq.com/api/doc/90000/90136/91507)
1011

1112
# 成员管理
1213

@@ -88,6 +89,17 @@ Name|Request Type|Response Type|Access Token|URL|Doc
8889
`execExternalContactDelCorpTag`|`reqExternalContactDelCorpTag`|`respExternalContactDelCorpTag`|+|`POST /cgi-bin/externalcontact/del_corp_tag`|[删除企业客户标签](https://work.weixin.qq.com/api/doc/90000/90135/92117)
8990
`execExternalContactMarkTag`|`reqExternalContactMarkTag`|`respExternalContactMarkTag`|+|`POST /cgi-bin/externalcontact/mark_tag`|[标记客户企业标签](https://work.weixin.qq.com/api/doc/90000/90135/92118)
9091

92+
# 外部联系人管理 - 客户分配
93+
94+
## API calls
95+
96+
Name|Request Type|Response Type|Access Token|URL|Doc
97+
:---|------------|-------------|------------|:--|:--
98+
`execListUnassignedExternalContact`|`reqListUnassignedExternalContact`|`respListUnassignedExternalContact`|+|`POST /cgi-bin/externalcontact/get_unassigned_list`|[获取离职成员的客户列表](https://work.weixin.qq.com/api/doc/90000/90135/92124)
99+
`execTransferExternalContact`|`reqTransferExternalContact`|`respTransferExternalContact`|+|`POST /cgi-bin/externalcontact/transfer`|[分配成员的客户](https://work.weixin.qq.com/api/doc/90000/90135/92125)
100+
`execGetTransferExternalContactResult`|`reqGetTransferExternalContactResult`|`respGetTransferExternalContactResult`|+|`POST /cgi-bin/externalcontact/get_transfer_result`|[查询客户接替结果](https://work.weixin.qq.com/api/doc/90000/90135/92973)
101+
`execTransferGroupChatExternalContact`|`reqTransferGroupChatExternalContact`|`respTransferGroupChatExternalContact`|+|`POST /cgi-bin/externalcontact/groupchat/transfer`|[离职成员的群再分配](https://work.weixin.qq.com/api/doc/90000/90135/92127)
102+
91103
# 应用管理
92104

93105
## API calls
@@ -152,3 +164,15 @@ Name|Request Type|Response Type|Access Token|URL|Doc
152164

153165
Name|Request Type|Response Type|Access Token|URL|Doc
154166
:---|------------|-------------|------------|:--|:--
167+
168+
169+
# 会话内容存档
170+
171+
## API calls
172+
173+
Name|Request Type|Response Type|Access Token|URL|Doc
174+
:---|------------|-------------|------------|:--|:--
175+
`execMsgAuditListPermitUser`|`reqMsgAuditListPermitUser`|`respMsgAuditListPermitUser`|+|`POST /cgi-bin/msgaudit/get_permit_user_list`|[获取会话内容存档开启成员列表](https://work.weixin.qq.com/api/doc/90000/90135/91614)
176+
`execMsgAuditCheckSingleAgree`|`reqMsgAuditCheckSingleAgree`|`respMsgAuditCheckSingleAgree`|+|`POST /cgi-bin/msgaudit/check_single_agree`|[获取会话同意情况(单聊)](https://work.weixin.qq.com/api/doc/90000/90135/91782)
177+
`execMsgAuditCheckRoomAgree`|`reqMsgAuditCheckRoomAgree`|`respMsgAuditCheckRoomAgree`|+|`POST /cgi-bin/msgaudit/check_room_agree`|[获取会话同意情况(群聊)](https://work.weixin.qq.com/api/doc/90000/90135/91782)
178+
`execMsgAuditGetGroupChat`|`reqMsgAuditGetGroupChat`|`respMsgAuditGetGroupChat`|+|`POST /cgi-bin/msgaudit/groupchat/get`|[获取会话内容存档内部群信息](https://work.weixin.qq.com/api/doc/90000/90135/92951)

docs/external_contact.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,3 +181,38 @@ Name|JSON|Type|Doc
181181
`ExternalUserID`|`external_userid`|`string`| 外部联系人userid
182182
`AddTag`|`add_tag`|`[]string`| 要标记的标签列表
183183
`RemoveTag`|`remove_tag`|`[]string`| 要移除的标签列表
184+
185+
### `ExternalContactUnassignedList` 离职成员的客户列表
186+
187+
Name|JSON|Type|Doc
188+
:---|:---|:---|:--
189+
`Info`|`info`|`[]ExternalContactUnassigned`| 离职成员的客户
190+
`IsLast`|`is_last`|`bool`| 是否是最后一条记录
191+
`NextCursor`|`next_cursor`|`string`| 分页查询游标,已经查完则返回空("")
192+
193+
```go
194+
// ExternalContactTransferStatus 客户接替结果状态
195+
type ExternalContactTransferStatus uint8
196+
197+
const (
198+
// ExternalContactTransferStatusSuccess 1-接替完毕
199+
ExternalContactTransferStatusSuccess ExternalContactTransferStatus = 1
200+
// ExternalContactTransferStatusWait 2-等待接替
201+
ExternalContactTransferStatusWait ExternalContactTransferStatus = 2
202+
// ExternalContactTransferStatusRefused 3-客户拒绝
203+
ExternalContactTransferStatusRefused ExternalContactTransferStatus = 3
204+
// ExternalContactTransferStatusExhausted 4-接替成员客户达到上限
205+
ExternalContactTransferStatusExhausted ExternalContactTransferStatus = 4
206+
// ExternalContactTransferStatusNoData 5-无接替记录
207+
ExternalContactTransferStatusNoData ExternalContactTransferStatus = 5
208+
)
209+
210+
```
211+
212+
### `ExternalContactGroupChatTransferFailed` 离职成员的群再分配失败
213+
214+
Name|JSON|Type|Doc
215+
:---|:---|:---|:--
216+
`ChatID`|`chat_id`|`string`| 没能成功继承的群ID
217+
`ErrCode`|`errcode`|`int`| 没能成功继承的群,错误码
218+
`ErrMsg`|`errmsg`|`string`| 没能成功继承的群,错误描述

external_contact.go

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
package workwx
22

3+
import (
4+
"time"
5+
)
6+
37
// ListExternalContact 获取客户列表
48
func (c *WorkwxApp) ListExternalContact(userID string) ([]string, error) {
59
resp, err := c.execExternalContactList(reqExternalContactList{
@@ -81,3 +85,72 @@ func (c *WorkwxApp) MarkExternalContactTag(userID, externalUserID string, addTag
8185
})
8286
return err
8387
}
88+
89+
// ExternalContactUnassigned 离职成员的客户
90+
type ExternalContactUnassigned struct {
91+
// HandoverUserID 离职成员的userid
92+
HandoverUserID string
93+
// ExternalUserID 外部联系人userid
94+
ExternalUserID string
95+
// DemissionTime 成员离职时间
96+
DemissionTime time.Time
97+
}
98+
99+
// ListUnassignedExternalContact 获取离职成员的客户列表
100+
func (c *WorkwxApp) ListUnassignedExternalContact(pageID, pageSize uint32, cursor string) (*ExternalContactUnassignedList, error) {
101+
resp, err := c.execListUnassignedExternalContact(reqListUnassignedExternalContact{
102+
PageID: pageID,
103+
PageSize: pageSize,
104+
Cursor: cursor,
105+
})
106+
if err != nil {
107+
return nil, err
108+
}
109+
externalContactUnassignedList := resp.intoExternalContactUnassignedList()
110+
return &externalContactUnassignedList, nil
111+
}
112+
113+
// TransferExternalContact 分配成员的客户
114+
func (c *WorkwxApp) TransferExternalContact(externalUserID, handoverUserID, takeoverUserID, transferSuccessMsg string) error {
115+
_, err := c.execTransferExternalContact(reqTransferExternalContact{
116+
ExternalUserID: externalUserID,
117+
HandoverUserID: handoverUserID,
118+
TakeoverUserID: takeoverUserID,
119+
TransferSuccessMsg: transferSuccessMsg,
120+
})
121+
return err
122+
}
123+
124+
// ExternalContactTransferResult 客户接替结果
125+
type ExternalContactTransferResult struct {
126+
// Status 接替状态, 1-接替完毕 2-等待接替 3-客户拒绝 4-接替成员客户达到上限 5-无接替记录
127+
Status ExternalContactTransferStatus
128+
// TakeoverTime 接替客户的时间,如果是等待接替状态,则为未来的自动接替时间
129+
TakeoverTime time.Time
130+
}
131+
132+
// GetTransferExternalContactResult 查询客户接替结果
133+
func (c *WorkwxApp) GetTransferExternalContactResult(externalUserID, handoverUserID, takeoverUserID string) (*ExternalContactTransferResult, error) {
134+
resp, err := c.execGetTransferExternalContactResult(reqGetTransferExternalContactResult{
135+
ExternalUserID: externalUserID,
136+
HandoverUserID: handoverUserID,
137+
TakeoverUserID: takeoverUserID,
138+
})
139+
if err != nil {
140+
return nil, err
141+
}
142+
externalContactTransferResult := resp.intoExternalContactTransferResult()
143+
return &externalContactTransferResult, nil
144+
}
145+
146+
// TransferGroupChatExternalContact 离职成员的群再分配
147+
func (c *WorkwxApp) TransferGroupChatExternalContact(chatIDList []string, newOwner string) ([]ExternalContactGroupChatTransferFailed, error) {
148+
resp, err := c.execTransferGroupChatExternalContact(reqTransferGroupChatExternalContact{
149+
ChatIDList: chatIDList,
150+
NewOwner: newOwner,
151+
})
152+
if err != nil {
153+
return nil, err
154+
}
155+
return resp.FailedChatList, nil
156+
}

external_contact.md.go

Lines changed: 36 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)