mirror of
https://github.com/silenceper/wechat.git
synced 2026-02-04 21:02:25 +08:00
231 lines
7.2 KiB
Go
231 lines
7.2 KiB
Go
package addresslist
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/silenceper/wechat/v2/util"
|
|
)
|
|
|
|
const (
|
|
// getPermListURL 获取应用的可见范围
|
|
getPermListURL = "https://qyapi.weixin.qq.com/cgi-bin/linkedcorp/agent/get_perm_list?access_token=%s"
|
|
// getLinkedCorpUserURL 获取互联企业成员详细信息
|
|
getLinkedCorpUserURL = "https://qyapi.weixin.qq.com/cgi-bin/linkedcorp/user/get?access_token=%s"
|
|
// linkedCorpSimpleListURL 获取互联企业部门成员
|
|
linkedCorpSimpleListURL = "https://qyapi.weixin.qq.com/cgi-bin/linkedcorp/user/simplelist?access_token=%s"
|
|
// linkedCorpUserListURL 获取互联企业部门成员详情
|
|
linkedCorpUserListURL = "https://qyapi.weixin.qq.com/cgi-bin/linkedcorp/user/list?access_token=%s"
|
|
// linkedCorpDepartmentListURL 获取互联企业部门列表
|
|
linkedCorpDepartmentListURL = "https://qyapi.weixin.qq.com/cgi-bin/linkedcorp/department/list?access_token=%s"
|
|
)
|
|
|
|
// GetPermListResponse 获取应用的可见范围响应
|
|
type GetPermListResponse struct {
|
|
util.CommonError
|
|
UserIDs []string `json:"userids"`
|
|
DepartmentIDs []string `json:"department_ids"`
|
|
}
|
|
|
|
// GetPermList 获取应用的可见范围
|
|
// see https://developer.work.weixin.qq.com/document/path/93172
|
|
func (r *Client) GetPermList() (*GetPermListResponse, error) {
|
|
var (
|
|
accessToken string
|
|
err error
|
|
)
|
|
if accessToken, err = r.GetAccessToken(); err != nil {
|
|
return nil, err
|
|
}
|
|
var response []byte
|
|
if response, err = util.HTTPPost(fmt.Sprintf(getPermListURL, accessToken), ""); err != nil {
|
|
return nil, err
|
|
}
|
|
result := &GetPermListResponse{}
|
|
if err = util.DecodeWithError(response, result, "GetPermList"); err != nil {
|
|
return nil, err
|
|
}
|
|
return result, nil
|
|
}
|
|
|
|
// GetLinkedCorpUserRequest 获取互联企业成员详细信息请求
|
|
type GetLinkedCorpUserRequest struct {
|
|
UserID string `json:"userid"`
|
|
}
|
|
|
|
// GetLinkedCorpUserResponse 获取互联企业成员详细信息响应
|
|
type GetLinkedCorpUserResponse struct {
|
|
util.CommonError
|
|
UserInfo LinkedCorpUserInfo `json:"user_info"`
|
|
}
|
|
|
|
// LinkedCorpUserInfo 互联企业成员详细信息
|
|
type LinkedCorpUserInfo struct {
|
|
UserID string `json:"userid"`
|
|
Name string `json:"name"`
|
|
Department []string `json:"department"`
|
|
Mobile string `json:"mobile"`
|
|
Telephone string `json:"telephone"`
|
|
Email string `json:"email"`
|
|
Position string `json:"position"`
|
|
CorpID string `json:"corpid"`
|
|
Extattr Extattr `json:"extattr"`
|
|
}
|
|
|
|
// Extattr 互联企业成员详细信息扩展属性
|
|
type Extattr struct {
|
|
Attrs []ExtattrItem `json:"attrs"`
|
|
}
|
|
|
|
// ExtattrItem 互联企业成员详细信息扩展属性条目
|
|
type ExtattrItem struct {
|
|
Name string `json:"name"`
|
|
Value string `json:"value,omitempty"`
|
|
Type int `json:"type"`
|
|
Text ExtattrItemText `json:"text,omitempty"`
|
|
Web ExtattrItemWeb `json:"web,omitempty"`
|
|
}
|
|
|
|
// ExtattrItemText 互联企业成员详细信息自定义属性(文本)
|
|
type ExtattrItemText struct {
|
|
Value string `json:"value"`
|
|
}
|
|
|
|
// ExtattrItemWeb 互联企业成员详细信息自定义属性(网页)
|
|
type ExtattrItemWeb struct {
|
|
URL string `json:"url"`
|
|
Title string `json:"title"`
|
|
}
|
|
|
|
// GetLinkedCorpUser 获取互联企业成员详细信息
|
|
// see https://developer.work.weixin.qq.com/document/path/93171
|
|
func (r *Client) GetLinkedCorpUser(req *GetLinkedCorpUserRequest) (*GetLinkedCorpUserResponse, error) {
|
|
var (
|
|
accessToken string
|
|
err error
|
|
)
|
|
if accessToken, err = r.GetAccessToken(); err != nil {
|
|
return nil, err
|
|
}
|
|
var response []byte
|
|
if response, err = util.PostJSON(fmt.Sprintf(getLinkedCorpUserURL, accessToken), req); err != nil {
|
|
return nil, err
|
|
}
|
|
result := &GetLinkedCorpUserResponse{}
|
|
if err = util.DecodeWithError(response, result, "GetLinkedCorpUser"); err != nil {
|
|
return nil, err
|
|
}
|
|
return result, nil
|
|
}
|
|
|
|
// LinkedCorpSimpleListRequest 获取互联企业部门成员请求
|
|
type LinkedCorpSimpleListRequest struct {
|
|
DepartmentID string `json:"department_id"`
|
|
}
|
|
|
|
// LinkedCorpSimpleListResponse 获取互联企业部门成员响应
|
|
type LinkedCorpSimpleListResponse struct {
|
|
util.CommonError
|
|
Userlist []LinkedCorpUser `json:"userlist"`
|
|
}
|
|
|
|
// LinkedCorpUser 企业部门成员
|
|
type LinkedCorpUser struct {
|
|
UserID string `json:"userid"`
|
|
Name string `json:"name"`
|
|
Department []string `json:"department"`
|
|
CorpID string `json:"corpid"`
|
|
}
|
|
|
|
// LinkedCorpSimpleList 获取互联企业部门成员
|
|
// see https://developer.work.weixin.qq.com/document/path/93168
|
|
func (r *Client) LinkedCorpSimpleList(req *LinkedCorpSimpleListRequest) (*LinkedCorpSimpleListResponse, error) {
|
|
var (
|
|
accessToken string
|
|
err error
|
|
)
|
|
if accessToken, err = r.GetAccessToken(); err != nil {
|
|
return nil, err
|
|
}
|
|
var response []byte
|
|
if response, err = util.PostJSON(fmt.Sprintf(linkedCorpSimpleListURL, accessToken), req); err != nil {
|
|
return nil, err
|
|
}
|
|
result := &LinkedCorpSimpleListResponse{}
|
|
if err = util.DecodeWithError(response, result, "LinkedCorpSimpleList"); err != nil {
|
|
return nil, err
|
|
}
|
|
return result, nil
|
|
}
|
|
|
|
// LinkedCorpUserListRequest 获取互联企业部门成员详情请求
|
|
type LinkedCorpUserListRequest struct {
|
|
DepartmentID string `json:"department_id"`
|
|
}
|
|
|
|
// LinkedCorpUserListResponse 获取互联企业部门成员详情响应
|
|
type LinkedCorpUserListResponse struct {
|
|
util.CommonError
|
|
UserList []LinkedCorpUserInfo `json:"userlist"`
|
|
}
|
|
|
|
// LinkedCorpUserList 获取互联企业部门成员详情
|
|
// see https://developer.work.weixin.qq.com/document/path/93169
|
|
func (r *Client) LinkedCorpUserList(req *LinkedCorpUserListRequest) (*LinkedCorpUserListResponse, error) {
|
|
var (
|
|
accessToken string
|
|
err error
|
|
)
|
|
if accessToken, err = r.GetAccessToken(); err != nil {
|
|
return nil, err
|
|
}
|
|
var response []byte
|
|
if response, err = util.PostJSON(fmt.Sprintf(linkedCorpUserListURL, accessToken), req); err != nil {
|
|
return nil, err
|
|
}
|
|
result := &LinkedCorpUserListResponse{}
|
|
if err = util.DecodeWithError(response, result, "LinkedCorpUserList"); err != nil {
|
|
return nil, err
|
|
}
|
|
return result, nil
|
|
}
|
|
|
|
// LinkedCorpDepartmentListRequest 获取互联企业部门列表请求
|
|
type LinkedCorpDepartmentListRequest struct {
|
|
DepartmentID string `json:"department_id"`
|
|
}
|
|
|
|
// LinkedCorpDepartmentListResponse 获取互联企业部门列表响应
|
|
type LinkedCorpDepartmentListResponse struct {
|
|
util.CommonError
|
|
DepartmentList []LinkedCorpDepartment `json:"department_list"`
|
|
}
|
|
|
|
// LinkedCorpDepartment 互联企业部门
|
|
type LinkedCorpDepartment struct {
|
|
DepartmentID string `json:"department_id"`
|
|
DepartmentName string `json:"department_name"`
|
|
ParentID string `json:"parentid"`
|
|
Order int `json:"order"`
|
|
}
|
|
|
|
// LinkedCorpDepartmentList 获取互联企业部门列表
|
|
// see https://developer.work.weixin.qq.com/document/path/93170
|
|
func (r *Client) LinkedCorpDepartmentList(req *LinkedCorpDepartmentListRequest) (*LinkedCorpDepartmentListResponse, error) {
|
|
var (
|
|
accessToken string
|
|
err error
|
|
)
|
|
if accessToken, err = r.GetAccessToken(); err != nil {
|
|
return nil, err
|
|
}
|
|
var response []byte
|
|
if response, err = util.PostJSON(fmt.Sprintf(linkedCorpDepartmentListURL, accessToken), req); err != nil {
|
|
return nil, err
|
|
}
|
|
result := &LinkedCorpDepartmentListResponse{}
|
|
if err = util.DecodeWithError(response, result, "LinkedCorpDepartmentList"); err != nil {
|
|
return nil, err
|
|
}
|
|
return result, nil
|
|
}
|