diff --git a/apis.md.go b/apis.md.go index dd976d3..43b8d3d 100644 --- a/apis.md.go +++ b/apis.md.go @@ -310,6 +310,20 @@ func (c *WorkwxApp) execTransferGroupChatExternalContact(req reqTransferGroupCha return resp, nil } +// execExternalContractGroupChatGet 获取客户群详情 +func (c *WorkwxApp) execExternalContractGroupChatGet(req reqGroupChatExternalContact) (respGetExternalContractGroupChatResult, error) { + var resp respGetExternalContractGroupChatResult + err := c.executeQyapiJSONPost("/cgi-bin/externalcontact/groupchat/get", req, &resp, true) + if err != nil { + return respGetExternalContractGroupChatResult{}, err + } + if bizErr := resp.TryIntoErr(); bizErr != nil { + return respGetExternalContractGroupChatResult{}, bizErr + } + + return resp, nil +} + // execAppchatCreate 创建群聊会话 func (c *WorkwxApp) execAppchatCreate(req reqAppchatCreate) (respAppchatCreate, error) { var resp respAppchatCreate diff --git a/docs/apis.md b/docs/apis.md index b2cc794..bb7de6c 100644 --- a/docs/apis.md +++ b/docs/apis.md @@ -100,6 +100,7 @@ Name|Request Type|Response Type|Access Token|URL|Doc `execTransferExternalContact`|`reqTransferExternalContact`|`respTransferExternalContact`|+|`POST /cgi-bin/externalcontact/transfer`|[分配成员的客户](https://work.weixin.qq.com/api/doc/90000/90135/92125) `execGetTransferExternalContactResult`|`reqGetTransferExternalContactResult`|`respGetTransferExternalContactResult`|+|`POST /cgi-bin/externalcontact/get_transfer_result`|[查询客户接替结果](https://work.weixin.qq.com/api/doc/90000/90135/92973) `execTransferGroupChatExternalContact`|`reqTransferGroupChatExternalContact`|`respTransferGroupChatExternalContact`|+|`POST /cgi-bin/externalcontact/groupchat/transfer`|[离职成员的群再分配](https://work.weixin.qq.com/api/doc/90000/90135/92127) +`execExternalContractGroupChatGet`|`reqGroupChatExternalContact`|`respGetExternalContractGroupChatResult`|+|`POST /cgi-bin/externalcontact/groupchat/get`|[获取客户群详情](https://work.weixin.qq.com/api/doc/90000/90135/92122) # 应用管理 diff --git a/docs/external_contact.md b/docs/external_contact.md index 59d1a1e..078e8d5 100644 --- a/docs/external_contact.md +++ b/docs/external_contact.md @@ -229,3 +229,32 @@ Name|JSON|Type|Doc `ChatID`|`chat_id`|`string`| 没能成功继承的群ID `ErrCode`|`errcode`|`int`| 没能成功继承的群,错误码 `ErrMsg`|`errmsg`|`string`| 没能成功继承的群,错误描述 + +### `ExternalContractGroupMemberList` 群成员列表 + +Name|JSON|Type|Doc +:---|:---|:---|:-- +`Userid`|`userid`|`string`| +`Type`|`type`|`int`| 成员类型。1 - 企业成员 2 - 外部联系人 +`JoinTime`|`join_time`|`int`| +`JoinScene`|`join_scene`|`int`| 入群方式。1 - 由群成员邀请入群(直接邀请入群)2 - 由群成员邀请入群(通过邀请链接入群)3 - 通过扫描群二维码入群 +`GroupNickname`|`group_nickname`|`string`| 在群里的昵称 +`Name`|`name`|`string`| 名字。仅当 need_name = 1 时返回 + +### `ExternalContractGroupAdminList` 群管理员列表 + +Name|JSON|Type|Doc +:---|:---|:---|:-- +`Userid`|`userid`|`string`| 群管理员userid + +### `ExternalContractGroupChat` 客户群详情 + +Name|JSON|Type|Doc +:---|:---|:---|:-- +`ChatID`|`chat_id`|`string`| 客户群ID +`Name`|`name`|`string`| 群名 +`Owner`|`owner`|`string`| 群主ID +`CreateTime`|`create_time`|`int`| 群的创建时间 +`Notice`|`notice`|`string`| 群公告 +`MemberList`|`member_list`|`[]ExternalContractGroupMemberList`| 群成员列表 +`AdminList`|`admin_list`|`[]ExternalContractGroupAdminList`| 群管理员列表 diff --git a/external_contact.go b/external_contact.go index 37252b7..e9fe37d 100644 --- a/external_contact.go +++ b/external_contact.go @@ -167,3 +167,15 @@ func (c *WorkwxApp) TransferGroupChatExternalContact(chatIDList []string, newOwn } return resp.FailedChatList, nil } + +// GetGroupChatExternalContact 获取客户群详情 +func (c *WorkwxApp) GetGroupChatExternalContact(chatID string, needName int) (*ExternalContractGroupChat, error) { + resp, err := c.execExternalContractGroupChatGet(reqGroupChatExternalContact{ + ChatID: chatID, + NeedName: needName, + }) + if err != nil { + return nil, err + } + return &resp.ExternalContractGroupChat, nil +} diff --git a/external_contact.md.go b/external_contact.md.go index 6480fd5..9cf3c97 100644 --- a/external_contact.md.go +++ b/external_contact.md.go @@ -271,3 +271,41 @@ type ExternalContactGroupChatTransferFailed struct { // ErrMsg 没能成功继承的群,错误描述 ErrMsg string `json:"errmsg"` } + +// ExternalContractGroupMemberList 群成员列表 +type ExternalContractGroupMemberList struct { + Userid string `json:"userid"` + // Type 成员类型。1 - 企业成员 2 - 外部联系人 + Type int `json:"type"` + JoinTime int `json:"join_time"` + // JoinScene 入群方式。1 - 由群成员邀请入群(直接邀请入群)2 - 由群成员邀请入群(通过邀请链接入群)3 - 通过扫描群二维码入群 + JoinScene int `json:"join_scene"` + // GroupNickname 在群里的昵称 + GroupNickname string `json:"group_nickname"` + // Name 名字。仅当 need_name = 1 时返回 + Name string `json:"name"` +} + +// ExternalContractGroupAdminList 群管理员列表 +type ExternalContractGroupAdminList struct { + // Userid 群管理员userid + Userid string `json:"userid"` +} + +// ExternalContractGroupChat 客户群详情 +type ExternalContractGroupChat struct { + // ChatID 客户群ID + ChatID string `json:"chat_id"` + // Name 群名 + Name string `json:"name"` + // Owner 群主ID + Owner string `json:"owner"` + // CreateTime 群的创建时间 + CreateTime int `json:"create_time"` + // Notice 群公告 + Notice string `json:"notice"` + // MemberList 群成员列表 + MemberList []ExternalContractGroupMemberList `json:"member_list"` + // AdminList 群管理员列表 + AdminList []ExternalContractGroupAdminList `json:"admin_list"` +} diff --git a/models.go b/models.go index 2340d96..298102f 100644 --- a/models.go +++ b/models.go @@ -740,8 +740,8 @@ func (x reqMsgAuditGetGroupChat) intoBody() ([]byte, error) { type respMsgAuditGetGroupChat struct { respCommon Members []struct { - MemberID int `json:"memberid"` - JoinTime int `json:"jointime"` + MemberID string `json:"memberid"` + JoinTime int `json:"jointime"` } `json:"members"` RoomName string `json:"roomname"` Creator string `json:"creator"` @@ -891,6 +891,29 @@ type respTransferGroupChatExternalContact struct { FailedChatList []ExternalContactGroupChatTransferFailed `json:"failed_chat_list"` } +type reqGroupChatExternalContact struct { + //客户群ID + ChatID string `json:"chat_id"` + //是否需要返回群成员的名字group_chat.member_list.name。0-不返回;1-返回。默认不返回 + NeedName int `json:"need_name"` +} + +var _ bodyer = reqGroupChatExternalContact{} + +func (x reqGroupChatExternalContact) intoBody() ([]byte, error) { + result, err := json.Marshal(x) + if err != nil { + return nil, err + } + + return result, nil +} + +type respGetExternalContractGroupChatResult struct { + respCommon + ExternalContractGroupChat `json:"group_chat"` +} + type reqOAGetTemplateDetail struct { TemplateID string `json:"template_id"` } diff --git a/msg_audit.go b/msg_audit.go index b2006c1..5980cf5 100644 --- a/msg_audit.go +++ b/msg_audit.go @@ -91,7 +91,7 @@ func (c *WorkwxApp) ListMsgAuditPermitUser(msgAuditEdition MsgAuditEdition) ([]s // MsgAuditGroupChatMember 获取会话内容存档内部群成员 type MsgAuditGroupChatMember struct { // MemberID roomid群成员的id,userid - MemberID int + MemberID string // JoinTime roomid群成员的入群时间 JoinTime time.Time }