mirror of
https://github.com/silenceper/wechat.git
synced 2026-02-04 12:52:27 +08:00
企业微信-通讯录管理 (#601)
This commit is contained in:
@@ -68,7 +68,18 @@ host: https://qyapi.weixin.qq.com/
|
||||
| 获取「群聊数据统计」数据 (按群主聚合的方式) | POST | /cgi-bin/externalcontact/groupchat/statistic | YES | (r *Client) GetGroupChatStat | MARKWANG |
|
||||
| 获取「群聊数据统计」数据 (按自然日聚合的方式) | POST | /cgi-bin/externalcontact/groupchat/statistic_group_by_day | YES | (r *Client) GetGroupChatStatByDay | MARKWANG |
|
||||
|
||||
|
||||
## 通讯录管理
|
||||
[官方文档](https://developer.work.weixin.qq.com/document/path/95350/90200)
|
||||
|
||||
| 名称 | 请求方式 | URL | 是否已实现 | 使用方法 | 贡献者 |
|
||||
|:---------:|------|:----------------------------------------| ---------- | ------------------------------- |----------|
|
||||
| 获取子部门ID列表 | GET | /cgi-bin/department/simplelist | YES | (r *Client) DepartmentSimpleList| MARKWANG |
|
||||
| 获取部门成员 | GET | /cgi-bin/user/simplelist | YES | (r *Client) UserSimpleList | MARKWANG |
|
||||
=======
|
||||
|
||||
## 应用管理
|
||||
|
||||
TODO
|
||||
|
||||
|
||||
|
||||
17
work/addresslist/client.go
Normal file
17
work/addresslist/client.go
Normal file
@@ -0,0 +1,17 @@
|
||||
package addresslist
|
||||
|
||||
import (
|
||||
"github.com/silenceper/wechat/v2/work/context"
|
||||
)
|
||||
|
||||
// Client 通讯录管理接口实例
|
||||
type Client struct {
|
||||
*context.Context
|
||||
}
|
||||
|
||||
// NewClient 初始化实例
|
||||
func NewClient(ctx *context.Context) *Client {
|
||||
return &Client{
|
||||
ctx,
|
||||
}
|
||||
}
|
||||
47
work/addresslist/department.go
Normal file
47
work/addresslist/department.go
Normal file
@@ -0,0 +1,47 @@
|
||||
package addresslist
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/silenceper/wechat/v2/util"
|
||||
)
|
||||
|
||||
const (
|
||||
// DepartmentSimpleListURL 获取子部门ID列表
|
||||
DepartmentSimpleListURL = "https://qyapi.weixin.qq.com/cgi-bin/department/simplelist?access_token=%s&id=%d"
|
||||
)
|
||||
|
||||
type (
|
||||
// DepartmentSimpleListResponse 获取子部门ID列表响应
|
||||
DepartmentSimpleListResponse struct {
|
||||
util.CommonError
|
||||
DepartmentID []*DepartmentID `json:"department_id"`
|
||||
}
|
||||
// DepartmentID 子部门ID
|
||||
DepartmentID struct {
|
||||
ID int `json:"id"`
|
||||
ParentID int `json:"parentid"`
|
||||
Order int `json:"order"`
|
||||
}
|
||||
)
|
||||
|
||||
// DepartmentSimpleList 获取子部门ID列表
|
||||
// see https://developer.work.weixin.qq.com/document/path/95350
|
||||
func (r *Client) DepartmentSimpleList(departmentID int) ([]*DepartmentID, error) {
|
||||
var (
|
||||
accessToken string
|
||||
err error
|
||||
)
|
||||
if accessToken, err = r.GetAccessToken(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var response []byte
|
||||
if response, err = util.HTTPGet(fmt.Sprintf(DepartmentSimpleListURL, accessToken, departmentID)); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result := &DepartmentSimpleListResponse{}
|
||||
if err = util.DecodeWithError(response, result, "DepartmentSimpleList"); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return result.DepartmentID, nil
|
||||
}
|
||||
49
work/addresslist/user.go
Normal file
49
work/addresslist/user.go
Normal file
@@ -0,0 +1,49 @@
|
||||
package addresslist
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/silenceper/wechat/v2/util"
|
||||
)
|
||||
|
||||
const (
|
||||
// UserSimpleListURL 获取部门成员
|
||||
UserSimpleListURL = "https://qyapi.weixin.qq.com/cgi-bin/user/simplelist?access_token=%s&department_id=%d"
|
||||
)
|
||||
|
||||
type (
|
||||
// UserSimpleListResponse 获取部门成员响应
|
||||
UserSimpleListResponse struct {
|
||||
util.CommonError
|
||||
UserList []*UserList
|
||||
}
|
||||
// UserList 部门成员
|
||||
UserList struct {
|
||||
UserID string `json:"userid"`
|
||||
Name string `json:"name"`
|
||||
Department []int `json:"department"`
|
||||
OpenUserID string `json:"open_userid"`
|
||||
}
|
||||
)
|
||||
|
||||
// UserSimpleList 获取部门成员
|
||||
// @see https://developer.work.weixin.qq.com/document/path/90200
|
||||
func (r *Client) UserSimpleList(departmentID int) ([]*UserList, error) {
|
||||
var (
|
||||
accessToken string
|
||||
err error
|
||||
)
|
||||
if accessToken, err = r.GetAccessToken(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var response []byte
|
||||
if response, err = util.HTTPGet(fmt.Sprintf(UserSimpleListURL, accessToken, departmentID)); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result := &UserSimpleListResponse{}
|
||||
err = util.DecodeWithError(response, result, "UserSimpleList")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return result.UserList, nil
|
||||
}
|
||||
@@ -2,6 +2,7 @@ package work
|
||||
|
||||
import (
|
||||
"github.com/silenceper/wechat/v2/credential"
|
||||
"github.com/silenceper/wechat/v2/work/addresslist"
|
||||
"github.com/silenceper/wechat/v2/work/config"
|
||||
"github.com/silenceper/wechat/v2/work/context"
|
||||
"github.com/silenceper/wechat/v2/work/externalcontact"
|
||||
@@ -49,3 +50,8 @@ func (wk *Work) GetKF() (*kf.Client, error) {
|
||||
func (wk *Work) GetExternalContact() *externalcontact.Client {
|
||||
return externalcontact.NewClient(wk.ctx)
|
||||
}
|
||||
|
||||
// GetAddressList get address_list
|
||||
func (wk *Work) GetAddressList() *addresslist.Client {
|
||||
return addresslist.NewClient(wk.ctx)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user