首頁 > 軟體

.NET Core實現企業微信獲取部門成員

2022-06-17 18:03:09

1.獲取部門成員

請求方式:GET(HTTPS
請求地址:https://qyapi.weixin.qq.com/cgi-bin/user/simplelist?access_token=ACCESS_TOKEN&department_id=DEPARTMENT_ID&fetch_child=FETCH_CHILD

引數說明:

引數必須說明
access_token呼叫介面憑證
department_id獲取的部門id
fetch_child是否遞迴獲取子部門下面的成員:1-遞迴獲取,0-只獲取本部門

許可權說明:

應用須擁有指定部門的檢視許可權。

返回結果:

{
   "errcode": 0,
   "errmsg": "ok",
   "userlist": [
           {
                  "userid": "zhangsan",
                  "name": "張三",
                  "department": [1, 2],
                  "open_userid": "xxxxxx"
           }
     ]
}

引數說明:

引數說明
errcode返回碼
errmsg對返回碼的文字描述內容
userlist成員列表
userid成員UserID。對應管理端的帳號
name成員名稱,代開發自建應用需要管理員授權才返回;此欄位從2019年12月30日起,對新建立第三方應用不再返回真實name,使用userid代替name,2020年6月30日起,對所有歷史第三方應用不再返回真實name,使用userid代替name,後續第三方僅通訊錄應用可獲取,未返回名稱的情況需要通過通訊錄展示元件來展示名字
department成員所屬部門列表。列表項為部門ID,32位元整型
open_userid全域性唯一。對於同一個服務商,不同應用獲取到企業內同一個成員的open_userid是相同的,最多64個位元組。僅第三方應用可獲取

2.程式碼範例

 獲取Token方法見 https://www.jb51.net/article/245491.htm

2.1 appsetting截圖

 2.2 返回值實體

    public class GetUserByDepartmentResult
    {
        /// <summary>
        /// 錯誤編號
        /// </summary>
        public int errcode { get; set; }

        /// <summary>
        /// 錯誤資訊
        /// </summary>
        public string errmsg { get; set; }

        /// <summary>
        /// 使用者集合
        /// </summary>
        public List<UserList> userlist { get;set;}

    }

    public class UserList
    {
        /// <summary>
        /// 使用者ID
        /// </summary>
        public int userid { get; set; }

        /// <summary>
        /// 名稱
        /// </summary>
        public int name { get; set; }

        /// <summary>
        /// 部門列表
        /// </summary>
        public string[] department { get; set; }
    }

2.3 獲取部門資訊方法

        /// <summary>
        /// 獲取使用者通過部門id
        /// </summary>
        /// <param name="token">企業微信Token</param>
        /// <param name="department_id">部門id</param>
        /// <returns></returns>
        public static GetUserByDepartmentResult GetUserByDepartment(string token,int department_id)
        {
            //構造請求連結
            var requestBuild = GlobalContext.Configuration["Wx:GetUserByDepartment"];
            requestBuild = string.Format(requestBuild, token, department_id);
            using (var wxClient = GlobalContext.httpClientFactory.CreateClient("WxClient"))
            {
                var httpResponse = wxClient.GetAsync(requestBuild).Result;
                var result= JsonConvert.DeserializeObject<GetUserByDepartmentResult>(
                                  httpResponse.Content.ReadAsStringAsync().Result
                                  );

                return result;
            }
        }

2.4 呼叫(作為下拉被呼叫)

        public List<UserList> GetUserByDepartment()
        {
            List<UserList> userLists = new List<UserList>();
            var (token, issuccess) = ApplicationContext.GetToken();
            var result =  ApplicationContext.GetUserByDepartment(token, 334);
            if(result.errcode == 0)
            {
                userLists = result.userlist;
            }
            return userLists;
        }

到此這篇關於.NET Core實現企業微信獲取部門成員的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com