webapi獲取企業微信通訊錄成員完整部門


前言:需求需要獲取企業微信通訊錄成員部門名稱,通過api只能返回最后一級部門名稱,現在需要獲取完整部門,分多級。

      首先通過手機號調用企業微信api獲取個人詳細信息,獲取部門id,下面方法直接返回部門全稱

public string getnames(int id)
        {

            string str = "";
            int pid;
            partment department = null;  //定義好幾個null后面用來組裝或者替換數據
            string name = null;

            department = DepartmentAPI.get(id)[0];
            pid = department.getParentid();
            name = department.getName();//根據id得到部門名稱和父id
            if (pid == 1)
            {
                str = name+"/";
            }
            while (pid!=1)
            {  //當父id不為1時候,循環,父id為“1”時候表示已經取到最頂層“微信企業號”了
                str = name + "/" + str; //拼接部門:海直通用航空有限責任公司/維修工程部/生產計划與控制室 /
                pid = department.getParentid(); //得到父id
                department = DepartmentAPI.get(pid)[0]; //根據父id再取上一層部門
                name = department.getName(); //重新賦值給name
            }
            str = str.Substring(0, str.Length - 1); //去除最后一個“/”:海直通用航空有限責任公司/維修工程部/生產計划與控制室 
            return str;
        }

 

 上面用到的DepartmentAPI.get(id)   department.getParentid()  department.getName() 需要兩個類,partment.cs和DepartmentAPI .cs

 public class partment
    {
        public int id { get; set; }
        public string name { get; set; }
        public int parentid { get; set; }
        public int getId()
        {
            return id;
        }
        public void setId(int id)
        {
            this.id = id;
        }
        public string getName()
        {
            return name;
        }
        public int getParentid()
        {
            return parentid;
        }
        public void setParentid(int parentid)
        {
            this.parentid = parentid;
        }
        public void setName(string name)
        {
            this.name = name;
        }
    }


 public class DepartmentAPI
    {

        public static List<partment> getAllDepartment() {
            try
            {
                db_cohccardEntities db = new db_cohccardEntities();
                WeiXin weixin = new WeiXin();
                string mess = string.Empty;
                List<News> list = new List<News>();
                News newsitem = new News();
                News news = db.News.Where(u => u.Sys_CoID == 33).FirstOrDefault();
                var client = new RestClient("https://qyapi.weixin.qq.com/cgi-bin/department/list?access_token=***************");
                var request = new RestRequest(Method.GET);
                request.AddHeader("Postman-Token", "0cc27133-4ee9-4af6-ae75-223e75883142");
                request.AddHeader("cache-control", "no-cache");
                IRestResponse response = client.Execute(request);
                dynamic obj = JsonConvert.DeserializeObject<dynamic>(response.Content.ToString());
                List<partment> partments =obj.department.ToObject<List<partment>>();
                return partments;
            }
            catch (Exception ex) {
                return null;
            }
        }
        public static List<partment> get(int id)
        {
            List<partment> list = getAllDepartment();
            List<partment> dList = new List<partment>();
            if (list != null)
            {
                foreach (partment item in list)
                {
                    if (item.getId().Equals(id))
                    {
                        dList.Add(item);
                    }
                }
                return dList;
            }
            return null;
        }
    }

 

 

 
         
         
        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM