您的位置:首页 > 教程 > ASP.NET > .NETCore实现企业微信获取部门成员

.NETCore实现企业微信获取部门成员

2022-06-17 17:58:30 来源:易采站长站 作者:

.NETCore实现企业微信获取部门成员

1.获取部门成员

请求方式:GET(HTTPS)
请求地址:https://qyapi.weixin.QQ.com/cgi-bin/user/simplelist?access_token=ACCESS_TOKEN&department_id=DEPARTMENT_ID&fetch_child=FETCH_CHILDGbu站长之家-易采站长站-Easck.Com

参数说明:Gbu站长之家-易采站长站-Easck.Com

参数必须说明
access_token调用接口凭证
department_id获取的部门id
fetch_child是否递归获取子部门下面的成员:1-递归获取,0-只获取本部门

权限说明:Gbu站长之家-易采站长站-Easck.Com

应用须拥有指定部门的查看权限。Gbu站长之家-易采站长站-Easck.Com

返回结果:Gbu站长之家-易采站长站-Easck.Com

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

参数说明:Gbu站长之家-易采站长站-Easck.Com

参数说明
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.htmGbu站长之家-易采站长站-Easck.Com

2.1>

Gbu站长之家-易采站长站-Easck.Com

 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实现企业微信获取部门成员的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持易采站长站。Gbu站长之家-易采站长站-Easck.Com

如有侵权,请联系QQ:279390809 电话:15144810328

相关文章

  • [Asp.Net Core] 浅谈Blazor Server Side

    [Asp.Net Core] 浅谈Blazor Server Side

    在2016年, 本人就开始了一个内部项目, 其特点就是用C#构建DOM树, 然后把DOM同步到浏览器中显示. 并且在一些小工程中使用. 3年下来, 效果很不错, 但因为是使用C#来构建控件树, 在没有特定
    2020-07-01
  • asp.net生成Excel并导出下载五种实现方法

    asp.net生成Excel并导出下载五种实现方法

    方法一 通过GridView(简评:方法比较简单,但是只适合生成格式简单的Excel,且无法保留VBA代码),页面无刷新 aspx.cs部分 代码如下: using System; using System.Collections; using System.Configuration; usi
    2019-05-16
  • Asp.Net Core用NLog记录日志操作方法

    Asp.Net Core用NLog记录日志操作方法

    需求 1.日志自动写入到数据库、写入到文件 2.appsettings.json数据库连接更改后,不需要去改NLog中的连接地址,启动网站或项目时自动检测变动然后去更改,以appsettings.json为准,保持同步
    2019-11-19
  • 使用vs2019加.net core 对WeiApi的创建过程详解

    使用vs2019加.net core 对WeiApi的创建过程详解

    vs2019创建webapi 1.创建新的项目 2.选择.NET CORE的ASP .NET CORE WEB应用程序 3.定义项目名称和存放地点 4.选择API创建项目 5.删除原本的无用的类 6.添加新的方法类 7.设置路由 using Microsoft.AspNe
    2020-07-03
  • 教你Asp.net下使用mysql数据库的步骤

    教你Asp.net下使用mysql数据库的步骤

    1. 首先需要安装mysql, 易采站长站下载地址: //www.jb51.net/softs/2193.html 或者去mysql.com官网都可以,一路next,安装好后,有个简单配置,提示有个设置登录密码和服务名称, 默认localhost,用
    2019-05-16
  • [Asp.Net Core]用Blazor Server Side实现图片验证码

    [Asp.Net Core]用Blazor Server Side实现图片验证码

    关于Blazor 由于在国内, Blazor一点都不普及, 在阅读此文前, 建议读者先翻看我之前写的随笔, 了解Blazor Server Side的特点. 在一段时间内, 我会写一些解说分析型的 "为什么选择 Blazor Server
    2020-07-01
  • 详解ASP.NET Razor 语法

    详解ASP.NET Razor 语法

    Razor 同时支持 C# (C sharp) 和 VB (Visual Basic)。 主要的 Razor C# 语法规则 Razor 代码块包含在 @{ ... } 中 内联表达式(变量和函数)以 @ 开头 代码语句用分号结束 变量使用 var 关键字声明 字符
    2020-07-07
  • .Net Core中使用ExceptionFilter过滤器的方法

    .Net Core中使用ExceptionFilter过滤器的方法

    .Net Core中有各种Filter,分别是AuthorizationFilter、ResourceFilter、ExceptionFilter、ActionFilter、ResultFilter。可以把他们看作是.Net Core自带的AOP的扩展封装。 今天来看其中的一种:ExceptionFilter(用于
    2020-03-03