From 670cd7d451414bbd33d8021ed792c125b0328c1e Mon Sep 17 00:00:00 2001 From: yxh Date: Sun, 9 Oct 2022 16:57:00 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E5=AE=A2=E6=88=B7=E7=BE=A4=E5=88=97=E8=A1=A8=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apis.md.go | 14 ++++++++++++++ appchat.go | 11 +++++++++++ chat_info.md.go | 34 ++++++++++++++++++++++++++++++++++ docs/apis.md | 1 + docs/chat_info.md | 38 ++++++++++++++++++++++++++++++++++++++ models.go | 20 ++++++++++++++++++++ 6 files changed, 118 insertions(+) diff --git a/apis.md.go b/apis.md.go index 7ffccb6..1ef60e5 100644 --- a/apis.md.go +++ b/apis.md.go @@ -310,6 +310,20 @@ func (c *WorkwxApp) execTransferGroupChatExternalContact(req reqTransferGroupCha return resp, nil } +// execAppchatListGet 获取客户群列表 +func (c *WorkwxApp) execAppchatListGet(req reqAppchatList) (respAppchatList, error) { + var resp respAppchatList + err := c.executeQyapiJSONPost("cgi-bin/externalcontact/groupchat/list", req, &resp, true) + if err != nil { + return respAppchatList{}, err + } + if bizErr := resp.TryIntoErr(); bizErr != nil { + return respAppchatList{}, bizErr + } + + return resp, nil +} + // execAppchatCreate 创建群聊会话 func (c *WorkwxApp) execAppchatCreate(req reqAppchatCreate) (respAppchatCreate, error) { var resp respAppchatCreate diff --git a/appchat.go b/appchat.go index 857d785..509cc5c 100644 --- a/appchat.go +++ b/appchat.go @@ -24,3 +24,14 @@ func (c *WorkwxApp) GetAppchat(chatid string) (*ChatInfo, error) { obj := resp.ChatInfo return obj, nil } + +// GetAppChatList 获取群聊列表 +func (c *WorkwxApp) GetAppChatList(req ReqChatList) (*RespAppchatList, error) { + resp, err := c.execAppchatListGet(reqAppchatList{ + ReqChatList: req, + }) + if err != nil { + return nil, err + } + return resp.RespAppchatList, nil +} diff --git a/chat_info.md.go b/chat_info.md.go index 1373514..fa4568b 100644 --- a/chat_info.md.go +++ b/chat_info.md.go @@ -13,3 +13,37 @@ type ChatInfo struct { // MemberUserIDs 群成员id列表 MemberUserIDs []string `json:"userlist"` } + +// ReqChatListOwnerFilter 群主过滤 +type ReqChatListOwnerFilter struct { + // UseridList 用户ID列表。最多100个 + UseridList []string `json:"userid_list"` +} + +// ReqChatList 群聊列表获取参数 +type ReqChatList struct { + // StatusFilter 客户群跟进状态过滤 + StatusFilter int64 `json:"status_filter"` + // OwnerFilter 群主过滤 + OwnerFilter ReqChatListOwnerFilter `json:"owner_filter"` + // Cursor 用于分页查询的游标,字符串类型,由上一次调用返回,首次调用不填 + Cursor string `json:"cursor"` + // Limit 分页,预期请求的数据量,取值范围 1 ~ 1000 + Limit int64 `json:"limit"` +} + +// RespGroupChatList 客户群列表数据 +type RespGroupChatList struct { + // ChatId 客户群ID + ChatId string `json:"chat_id"` + // Status 客户群跟进状态 0 - 跟进人正常 1 - 跟进人离职 2 - 离职继承中 3 - 离职继承完成 + Status int64 `json:"status"` +} + +// RespAppchatList 群聊列表结果 +type RespAppchatList struct { + // GroupChatList 客户群列表 + GroupChatList []RespGroupChatList `json:"group_chat_list"` + // NextCursor 分页游标 + NextCursor string `json:"next_cursor"` +} diff --git a/docs/apis.md b/docs/apis.md index 66f5362..9c27c47 100644 --- a/docs/apis.md +++ b/docs/apis.md @@ -127,6 +127,7 @@ Name|Request Type|Response Type|Access Token|URL|Doc Name|Request Type|Response Type|Access Token|URL|Doc :---|------------|-------------|------------|:--|:-- +`execAppchatListGet`|`reqAppchatList`|`respAppchatList`|+|`POST cgi-bin/externalcontact/groupchat/list`|[获取客户群列表](https://developer.work.weixin.qq.com/document/path/92120) `execAppchatCreate`|`reqAppchatCreate`|`respAppchatCreate`|+|`POST /cgi-bin/appchat/create`|[创建群聊会话](https://work.weixin.qq.com/api/doc#90000/90135/90245) `execAppchatUpdate`|TODO|TODO|+|`POST /cgi-bin/appchat/update`|[修改群聊会话](https://work.weixin.qq.com/api/doc#90000/90135/90246) `execAppchatGet`|`reqAppchatGet`|`respAppchatGet`|+|`GET /cgi-bin/appchat/get`|[获取群聊会话](https://work.weixin.qq.com/api/doc#90000/90135/90247) diff --git a/docs/chat_info.md b/docs/chat_info.md index bc98384..66962c2 100644 --- a/docs/chat_info.md +++ b/docs/chat_info.md @@ -10,3 +10,41 @@ Name|JSON|Type|Doc `Name`|`name`|`string`|群聊名 `OwnerUserID`|`owner`|`string`|群主id `MemberUserIDs`|`userlist`|`[]string`|群成员id列表 + + + +### `ReqChatListOwnerFilter` 群主过滤 + +Name|JSON|Type|Doc +:---|:---|:---|:-- +`UseridList`|`userid_list`|`[]string`| 用户ID列表。最多100个 + + + +### `ReqChatList` 群聊列表获取参数 + +Name|JSON|Type|Doc +:---|:---|:---|:-- +`StatusFilter`|`status_filter`|`int64`| 客户群跟进状态过滤 +`OwnerFilter`|`owner_filter`|`ReqChatListOwnerFilter`| 群主过滤 +`Cursor`|`cursor`|`string`| 用于分页查询的游标,字符串类型,由上一次调用返回,首次调用不填 +`Limit`|`limit`|`int64`| 分页,预期请求的数据量,取值范围 1 ~ 1000 + + +### `RespGroupChatList` 客户群列表数据 + +Name|JSON|Type|Doc +:---|:---|:---|:-- +`ChatId`|`chat_id`|`string`| 客户群ID +`Status`|`status`|`int64`| 客户群跟进状态 0 - 跟进人正常 1 - 跟进人离职 2 - 离职继承中 3 - 离职继承完成 + + + + +### `RespAppchatList` 群聊列表结果 + +Name|JSON|Type|Doc +:---|:---|:---|:-- +`GroupChatList`|`group_chat_list`|`[]RespGroupChatList`| 客户群列表 +`NextCursor`|`next_cursor`|`string`| 分页游标 + diff --git a/models.go b/models.go index 566a2e0..bf65497 100644 --- a/models.go +++ b/models.go @@ -891,6 +891,26 @@ type respTransferGroupChatExternalContact struct { FailedChatList []ExternalContactGroupChatTransferFailed `json:"failed_chat_list"` } +type reqAppchatList struct { + ReqChatList ReqChatList +} + +func (x reqAppchatList) intoBody() ([]byte, error) { + result, err := json.Marshal(x.ReqChatList) + if err != nil { + return nil, err + } + + return result, nil +} + +var _ bodyer = reqAppchatList{} + +type respAppchatList struct { + respCommon + *RespAppchatList +} + type reqOAGetTemplateDetail struct { TemplateID string `json:"template_id"` } From ce676b55fbc86717a13687b9d31bae4fe27e19a7 Mon Sep 17 00:00:00 2001 From: yxh Date: Mon, 10 Oct 2022 09:27:46 +0800 Subject: [PATCH 2/3] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E5=AE=A2=E6=88=B7=E7=BE=A4=E8=AF=A6=E7=BB=86=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apis.md.go | 16 ++++++++++++- appchat.go | 11 +++++++++ chat_info.md.go | 57 +++++++++++++++++++++++++++++++++++++++++++++-- docs/apis.md | 3 ++- docs/chat_info.md | 53 +++++++++++++++++++++++++++++++++++++++++-- models.go | 21 +++++++++++++++++ 6 files changed, 155 insertions(+), 6 deletions(-) diff --git a/apis.md.go b/apis.md.go index 1ef60e5..bbdef38 100644 --- a/apis.md.go +++ b/apis.md.go @@ -313,7 +313,7 @@ func (c *WorkwxApp) execTransferGroupChatExternalContact(req reqTransferGroupCha // execAppchatListGet 获取客户群列表 func (c *WorkwxApp) execAppchatListGet(req reqAppchatList) (respAppchatList, error) { var resp respAppchatList - err := c.executeQyapiJSONPost("cgi-bin/externalcontact/groupchat/list", req, &resp, true) + err := c.executeQyapiJSONPost("/cgi-bin/externalcontact/groupchat/list", req, &resp, true) if err != nil { return respAppchatList{}, err } @@ -324,6 +324,20 @@ func (c *WorkwxApp) execAppchatListGet(req reqAppchatList) (respAppchatList, err return resp, nil } +// execAppchatInfoGet 获取客户群详细 +func (c *WorkwxApp) execAppchatInfoGet(req reqAppchatInfo) (respAppchatInfo, error) { + var resp respAppchatInfo + err := c.executeQyapiJSONPost("/cgi-bin/externalcontact/groupchat/get", req, &resp, true) + if err != nil { + return respAppchatInfo{}, err + } + if bizErr := resp.TryIntoErr(); bizErr != nil { + return respAppchatInfo{}, bizErr + } + + return resp, nil +} + // execAppchatCreate 创建群聊会话 func (c *WorkwxApp) execAppchatCreate(req reqAppchatCreate) (respAppchatCreate, error) { var resp respAppchatCreate diff --git a/appchat.go b/appchat.go index 509cc5c..bcb5aee 100644 --- a/appchat.go +++ b/appchat.go @@ -35,3 +35,14 @@ func (c *WorkwxApp) GetAppChatList(req ReqChatList) (*RespAppchatList, error) { } return resp.RespAppchatList, nil } + +func (c *WorkwxApp) GetAppChatInfo(chatId string) (*RespAppChatInfo, error) { + resp, err := c.execAppchatInfoGet(reqAppchatInfo{ + ChatId: chatId, + NeedName: ChatNeedName, + }) + if err != nil { + return nil, err + } + return resp.GroupChat, nil +} diff --git a/chat_info.md.go b/chat_info.md.go index fa4568b..f1a31a1 100644 --- a/chat_info.md.go +++ b/chat_info.md.go @@ -20,7 +20,7 @@ type ReqChatListOwnerFilter struct { UseridList []string `json:"userid_list"` } -// ReqChatList 群聊列表获取参数 +// ReqChatList 获取客户群列表参数 type ReqChatList struct { // StatusFilter 客户群跟进状态过滤 StatusFilter int64 `json:"status_filter"` @@ -40,10 +40,63 @@ type RespGroupChatList struct { Status int64 `json:"status"` } -// RespAppchatList 群聊列表结果 +// RespAppchatList 客户群列表结果 type RespAppchatList struct { // GroupChatList 客户群列表 GroupChatList []RespGroupChatList `json:"group_chat_list"` // NextCursor 分页游标 NextCursor string `json:"next_cursor"` } + +// ChatMemberList 客户群成员列表 +type ChatMemberList struct { + // Userid 群成员ID + Userid string `json:"userid"` + // Type 群成员类型 1 - 企业成员 2 - 外部联系人 + Type int64 `json:"type"` + // Unionid 微信unionid + Unionid string `json:"unionid"` + // JoinTime 入群时间 + JoinTime int64 `json:"join_time"` + // JoinScene 入群方式。1 - 由群成员邀请入群(直接邀请入群)2 - 由群成员邀请入群(通过邀请链接入群)3 - 通过扫描群二维码入群 + JoinScene int64 `json:"join_scene"` + // Invitor 邀请者。目前仅当是由本企业内部成员邀请入群时会返回该值 + Invitor ChatMemberListInvitor `json:"invitor"` + // GroupNickname 在群里的昵称 + GroupNickname string `json:"group_nickname"` + // Name 在群里名字 + Name string `json:"name"` +} + +// ChatMemberListInvitor 入群邀请者 +type ChatMemberListInvitor struct { + // Userid 邀请者ID + Userid string `json:"userid"` +} + +// ChatAdminList 客户群管理员列表 +type ChatAdminList struct { + // Userid 管理员ID + Userid string `json:"userid"` +} + +// RespAppChatInfo 客户群详情 +type RespAppChatInfo struct { + // ChatId 客户群ID + ChatId string `json:"chat_id"` + // Name 客户群名称 + Name string `json:"name"` + // Owner 群主ID + Owner string `json:"owner"` + // CreateTime 群创建时间 + CreateTime int64 `json:"create_time"` + // Notice 群公告 + Notice string `json:"notice"` + // MemberList 群成员列表 + MemberList []*ChatMemberList `json:"member_list"` + // AdminList 群管理员列表 + AdminList []*ChatAdminList `json:"admin_list"` +} + +// ChatNeedName 是否需要返回群成员的名字 0-不返回;1-返回。默认不返回 +const ChatNeedName int64 = 1 diff --git a/docs/apis.md b/docs/apis.md index 9c27c47..44bc46b 100644 --- a/docs/apis.md +++ b/docs/apis.md @@ -127,7 +127,8 @@ Name|Request Type|Response Type|Access Token|URL|Doc Name|Request Type|Response Type|Access Token|URL|Doc :---|------------|-------------|------------|:--|:-- -`execAppchatListGet`|`reqAppchatList`|`respAppchatList`|+|`POST cgi-bin/externalcontact/groupchat/list`|[获取客户群列表](https://developer.work.weixin.qq.com/document/path/92120) +`execAppchatListGet`|`reqAppchatList`|`respAppchatList`|+|`POST /cgi-bin/externalcontact/groupchat/list`|[获取客户群列表](https://developer.work.weixin.qq.com/document/path/92120) +`execAppchatInfoGet`|`reqAppchatInfo`|`respAppchatInfo`|+|`POST /cgi-bin/externalcontact/groupchat/get`|[获取客户群详细](https://developer.work.weixin.qq.com/document/path/92122) `execAppchatCreate`|`reqAppchatCreate`|`respAppchatCreate`|+|`POST /cgi-bin/appchat/create`|[创建群聊会话](https://work.weixin.qq.com/api/doc#90000/90135/90245) `execAppchatUpdate`|TODO|TODO|+|`POST /cgi-bin/appchat/update`|[修改群聊会话](https://work.weixin.qq.com/api/doc#90000/90135/90246) `execAppchatGet`|`reqAppchatGet`|`respAppchatGet`|+|`GET /cgi-bin/appchat/get`|[获取群聊会话](https://work.weixin.qq.com/api/doc#90000/90135/90247) diff --git a/docs/chat_info.md b/docs/chat_info.md index 66962c2..95f10c5 100644 --- a/docs/chat_info.md +++ b/docs/chat_info.md @@ -21,7 +21,7 @@ Name|JSON|Type|Doc -### `ReqChatList` 群聊列表获取参数 +### `ReqChatList` 获取客户群列表参数 Name|JSON|Type|Doc :---|:---|:---|:-- @@ -41,10 +41,59 @@ Name|JSON|Type|Doc -### `RespAppchatList` 群聊列表结果 +### `RespAppchatList` 客户群列表结果 Name|JSON|Type|Doc :---|:---|:---|:-- `GroupChatList`|`group_chat_list`|`[]RespGroupChatList`| 客户群列表 `NextCursor`|`next_cursor`|`string`| 分页游标 +### `ChatMemberList` 客户群成员列表 + +Name|JSON|Type|Doc +:---|:---|:---|:-- +`Userid`|`userid`|`string`| 群成员ID +`Type`|`type`|`int64`| 群成员类型 1 - 企业成员 2 - 外部联系人 +`Unionid`|`unionid`|`string`| 微信unionid +`JoinTime`|`join_time`|`int64`| 入群时间 +`JoinScene`|`join_scene`|`int64`| 入群方式。1 - 由群成员邀请入群(直接邀请入群)2 - 由群成员邀请入群(通过邀请链接入群)3 - 通过扫描群二维码入群 +`Invitor`|`invitor`|`ChatMemberListInvitor`| 邀请者。目前仅当是由本企业内部成员邀请入群时会返回该值 +`GroupNickname`|`group_nickname`|`string`| 在群里的昵称 +`Name`|`name`|`string`| 在群里名字 + + +### `ChatMemberListInvitor` 入群邀请者 + +Name|JSON|Type|Doc +:---|:---|:---|:-- +`Userid`|`userid`|`string`| 邀请者ID + +### `ChatAdminList` 客户群管理员列表 + +Name|JSON|Type|Doc +:---|:---|:---|:-- +`Userid`|`userid`|`string`| 管理员ID + + +### `RespAppChatInfo` 客户群详情 +Name|JSON|Type|Doc +:---|:---|:---|:-- +`ChatId`|`chat_id`|`string`| 客户群ID +`Name`|`name`|`string`| 客户群名称 +`Owner`|`owner`|`string`| 群主ID +`CreateTime`|`create_time`|`int64`| 群创建时间 +`Notice`|`notice`|`string`| 群公告 +`MemberList`|`member_list`|`[]*ChatMemberList`| 群成员列表 +`AdminList`|`admin_list`|`[]*ChatAdminList`| 群管理员列表 + + + + + + + + +```go +// ChatNeedName 是否需要返回群成员的名字 0-不返回;1-返回。默认不返回 +const ChatNeedName int64 = 1 +``` diff --git a/models.go b/models.go index bf65497..7abbe5f 100644 --- a/models.go +++ b/models.go @@ -911,6 +911,27 @@ type respAppchatList struct { *RespAppchatList } +type reqAppchatInfo struct { + ChatId string `json:"chat_id"` + NeedName int64 `json:"need_name"` +} + +func (x reqAppchatInfo) intoBody() ([]byte, error) { + result, err := json.Marshal(x) + if err != nil { + return nil, err + } + + return result, nil +} + +var _ bodyer = reqAppchatInfo{} + +type respAppchatInfo struct { + respCommon + GroupChat *RespAppChatInfo `json:"group_chat"` +} + type reqOAGetTemplateDetail struct { TemplateID string `json:"template_id"` } From 63b67ece2d1b42842655b0f646d9534e5ae65f9d Mon Sep 17 00:00:00 2001 From: yxh Date: Mon, 10 Oct 2022 16:04:36 +0800 Subject: [PATCH 3/3] =?UTF-8?q?fix:=20=E7=BB=9F=E4=B8=80=E6=A0=87=E8=AF=86?= =?UTF-8?q?=E7=AC=A6=E9=87=8C=E7=9A=84=20ID=20=E5=A4=A7=E5=B0=8F=E5=86=99?= =?UTF-8?q?=20Id->ID?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- appchat.go | 3 ++- chat_info.md.go | 28 ++++++++++++++-------------- docs/chat_info.md | 14 +++++++------- 3 files changed, 23 insertions(+), 22 deletions(-) diff --git a/appchat.go b/appchat.go index bcb5aee..df33513 100644 --- a/appchat.go +++ b/appchat.go @@ -25,7 +25,7 @@ func (c *WorkwxApp) GetAppchat(chatid string) (*ChatInfo, error) { return obj, nil } -// GetAppChatList 获取群聊列表 +// GetAppChatList 获取客户群列表 func (c *WorkwxApp) GetAppChatList(req ReqChatList) (*RespAppchatList, error) { resp, err := c.execAppchatListGet(reqAppchatList{ ReqChatList: req, @@ -36,6 +36,7 @@ func (c *WorkwxApp) GetAppChatList(req ReqChatList) (*RespAppchatList, error) { return resp.RespAppchatList, nil } +// GetAppChatInfo 获取客户群详细信息 func (c *WorkwxApp) GetAppChatInfo(chatId string) (*RespAppChatInfo, error) { resp, err := c.execAppchatInfoGet(reqAppchatInfo{ ChatId: chatId, diff --git a/chat_info.md.go b/chat_info.md.go index f1a31a1..becbb0f 100644 --- a/chat_info.md.go +++ b/chat_info.md.go @@ -16,8 +16,8 @@ type ChatInfo struct { // ReqChatListOwnerFilter 群主过滤 type ReqChatListOwnerFilter struct { - // UseridList 用户ID列表。最多100个 - UseridList []string `json:"userid_list"` + // UserIDList 用户ID列表。最多100个 + UserIDList []string `json:"userid_list"` } // ReqChatList 获取客户群列表参数 @@ -34,8 +34,8 @@ type ReqChatList struct { // RespGroupChatList 客户群列表数据 type RespGroupChatList struct { - // ChatId 客户群ID - ChatId string `json:"chat_id"` + // ChatID 客户群ID + ChatID string `json:"chat_id"` // Status 客户群跟进状态 0 - 跟进人正常 1 - 跟进人离职 2 - 离职继承中 3 - 离职继承完成 Status int64 `json:"status"` } @@ -50,12 +50,12 @@ type RespAppchatList struct { // ChatMemberList 客户群成员列表 type ChatMemberList struct { - // Userid 群成员ID - Userid string `json:"userid"` + // UserID 群成员ID + UserID string `json:"userid"` // Type 群成员类型 1 - 企业成员 2 - 外部联系人 Type int64 `json:"type"` - // Unionid 微信unionid - Unionid string `json:"unionid"` + // UnionID 微信unionid + UnionID string `json:"unionid"` // JoinTime 入群时间 JoinTime int64 `json:"join_time"` // JoinScene 入群方式。1 - 由群成员邀请入群(直接邀请入群)2 - 由群成员邀请入群(通过邀请链接入群)3 - 通过扫描群二维码入群 @@ -70,20 +70,20 @@ type ChatMemberList struct { // ChatMemberListInvitor 入群邀请者 type ChatMemberListInvitor struct { - // Userid 邀请者ID - Userid string `json:"userid"` + // UserID 邀请者ID + UserID string `json:"userid"` } // ChatAdminList 客户群管理员列表 type ChatAdminList struct { - // Userid 管理员ID - Userid string `json:"userid"` + // UserID 管理员ID + UserID string `json:"userid"` } // RespAppChatInfo 客户群详情 type RespAppChatInfo struct { - // ChatId 客户群ID - ChatId string `json:"chat_id"` + // ChatID 客户群ID + ChatID string `json:"chat_id"` // Name 客户群名称 Name string `json:"name"` // Owner 群主ID diff --git a/docs/chat_info.md b/docs/chat_info.md index 95f10c5..ca524a3 100644 --- a/docs/chat_info.md +++ b/docs/chat_info.md @@ -17,7 +17,7 @@ Name|JSON|Type|Doc Name|JSON|Type|Doc :---|:---|:---|:-- -`UseridList`|`userid_list`|`[]string`| 用户ID列表。最多100个 +`UserIDList`|`userid_list`|`[]string`| 用户ID列表。最多100个 @@ -35,7 +35,7 @@ Name|JSON|Type|Doc Name|JSON|Type|Doc :---|:---|:---|:-- -`ChatId`|`chat_id`|`string`| 客户群ID +`ChatID`|`chat_id`|`string`| 客户群ID `Status`|`status`|`int64`| 客户群跟进状态 0 - 跟进人正常 1 - 跟进人离职 2 - 离职继承中 3 - 离职继承完成 @@ -52,9 +52,9 @@ Name|JSON|Type|Doc Name|JSON|Type|Doc :---|:---|:---|:-- -`Userid`|`userid`|`string`| 群成员ID +`UserID`|`userid`|`string`| 群成员ID `Type`|`type`|`int64`| 群成员类型 1 - 企业成员 2 - 外部联系人 -`Unionid`|`unionid`|`string`| 微信unionid +`UnionID`|`unionid`|`string`| 微信unionid `JoinTime`|`join_time`|`int64`| 入群时间 `JoinScene`|`join_scene`|`int64`| 入群方式。1 - 由群成员邀请入群(直接邀请入群)2 - 由群成员邀请入群(通过邀请链接入群)3 - 通过扫描群二维码入群 `Invitor`|`invitor`|`ChatMemberListInvitor`| 邀请者。目前仅当是由本企业内部成员邀请入群时会返回该值 @@ -66,19 +66,19 @@ Name|JSON|Type|Doc Name|JSON|Type|Doc :---|:---|:---|:-- -`Userid`|`userid`|`string`| 邀请者ID +`UserID`|`userid`|`string`| 邀请者ID ### `ChatAdminList` 客户群管理员列表 Name|JSON|Type|Doc :---|:---|:---|:-- -`Userid`|`userid`|`string`| 管理员ID +`UserID`|`userid`|`string`| 管理员ID ### `RespAppChatInfo` 客户群详情 Name|JSON|Type|Doc :---|:---|:---|:-- -`ChatId`|`chat_id`|`string`| 客户群ID +`ChatID`|`chat_id`|`string`| 客户群ID `Name`|`name`|`string`| 客户群名称 `Owner`|`owner`|`string`| 群主ID `CreateTime`|`create_time`|`int64`| 群创建时间