7.企业微信-2.ILazyQYContact

部门管理

CreateDeptAsync

  • 作用 : 创建部门

  • 官方文档 : https://work.weixin.qq.com/api/doc/90000/90135/90205

  • 参数

    • name : 部门中文名称
    • name_en : 部门英文名称
    • parentid : 父部门id
    • order : 在父部门中的次序值
    • id : 部门id,指定时必须大于1,若不填该参数,将自动生成id
  • 返回值 dynamic

    {
       "errcode": 0,
       "errmsg": "created",
       "id": 2
    }
    
  • 示例代码

    var res = await _lazyQYContact.CreateDeptAsync(name, name_en, parentid, order, null);
    

UpdateDeptAsync

  • 作用 : 修改部门

  • 官方文档 : https://work.weixin.qq.com/api/doc/90000/90135/90205

  • 参数

    • id : 部门id
    • name : 部门中文名称
    • name_en : 部门英文名称
    • parentid : 父部门id
    • order : 在父部门中的次序值
  • 返回值 dynamic

    {
       "errcode": 0,
       "errmsg": "updated"
    }
    
  • 示例代码

    var res = await _lazyQYContact.UpdateDeptAsync(id, name, name_en, parentid, order);
    

DeleteDeptAsync

GetDeptsAsync

  • 作用 : 获取部门列表

  • 官方文档 : https://work.weixin.qq.com/api/doc/90000/90135/90208

  • 参数

    • id : 部门id。获取指定部门及其下的子部门(以及及子部门的子部门等等,递归)。 如果不填,默认获取全量组织架构
  • 返回值 dynamic

    {
       "errcode": 0,
       "errmsg": "ok",
       "department": [
           {
               "id": 2,
               "name": "广州研发中心",
               "name_en": "RDGZ",
               "parentid": 1,
               "order": 10
           },
           {
               "id": 3,
               "name": "邮箱产品部",
               "name_en": "mail",
               "parentid": 2,
               "order": 40
           }
       ]
    }
    
  • 示例代码

    var res = await _lazyQYContact.GetDeptsAsync(null);
    

标签管理

CreateTagAsync

  • 作用 : 创建标签

  • 官方文档 : https://work.weixin.qq.com/api/doc/90000/90135/90210

  • 参数

    • tagid : 标签id,非负整型,指定此参数时新增的标签会生成对应的标签id,不指定时则以目前最大的id自增.
    • tagname : 标签名称
  • 返回值 dynamic

    {
       "errcode": 0,
       "errmsg": "created"
       "tagid": 12
    }
    
  • 示例代码

    var res = await _lazyQYContact.CreateTagAsync(tagid, tagname);
    

UpdateTagAsync

  • 作用 : 更新标签名字

  • 官方文档 : https://work.weixin.qq.com/api/doc/90000/90135/90211

  • 参数

    • tagid : 标签id
    • tagname : 标签名称
  • 返回值 dynamic

    {
       "errcode": 0,
       "errmsg": "updated"
    }
    
  • 示例代码

    var res = await _lazyQYContact.UpdateTagAsync(tagid, tagname);
    

DeleteTagAsync

GetTagUsersAsync

  • 作用 : 获取标签成员

  • 官方文档 : https://work.weixin.qq.com/api/doc/90000/90135/90213

  • 参数

    • tagid : 标签id
  • 返回值 dynamic

    {
       "errcode": 0,
       "errmsg": "ok",
       "tagname": "乒乓球协会",
       "userlist": [
             {
                 "userid": "zhangsan",
                 "name": "李四"
             }
         ],
       "partylist": [2]
    }
    
  • 示例代码

    var res = await _lazyQYContact.GetTagUsersAsync(tagid);

AddUsersforTagAsync

  • 作用 : 增加标签成员

  • 官方文档 : https://work.weixin.qq.com/api/doc/90000/90135/90213

  • 参数 : 该方法包含两个重载函数

    • 重载函数1 : 为标签添加某些指定成员

      • tagid
      • userlist : 标签中包含的成员列表
      Task<dynamic> AddUsersforTagAsync(int tagid, params string[] userlist);
      
    • 重载函数2 : 为标签添加某些部门的所有成员

      • tagid
      • partylist : 标签中包含的部门id列表
      Task<dynamic> AddUsersforTagAsync(int tagid, params int[] partylist);
      
  • 返回值 dynamic

    {
       "errcode": 0,
       "errmsg": "ok",
       "tagname": "乒乓球协会",
       "userlist": [
             {
                 "userid": "zhangsan",
                 "name": "李四"
             }
         ],
       "partylist": [2]
    }
    
  • 示例代码

    var username = "test";
    var res = await _lazyQYContact.AddUsersforTagAsync(id, username);
    
    var party = 1;
    var res = await _lazyQYContact.AddUsersforTagAsync(id, party);
    

DeleteUsersforTagAsync

  • 作用 : 删除标签成员

  • 官方文档 : https://work.weixin.qq.com/api/doc/90000/90135/90215

  • 参数 : 该方法包含两个重载函数

    • 重载函数1 : 为标签删除某些指定成员

      • tagid
      • userlist : 标签中包含的成员列表
      Task<dynamic> DeleteUsersforTagAsync(int tagid, params string[] userlist);
      
    • 重载函数2 : 为标签删除某些部门的所有成员

      • tagid
      • partylist : 标签中包含的部门id列表
      Task<dynamic> DeleteUsersforTagAsync(int tagid, params int[] partylist);
      
  • 返回值 dynamic

    • 正常结果
    {
       "errcode": 0,
       "errmsg": "deleted"
    }
    
    • 若部分userid、partylist非法
    {   "errcode": 0,   "errmsg": "deleted",   "invalidlist":"usr1|usr2|usr",   "invalidparty": [2,4]}
    
    • 当包含的userid、partylist全部非法时返回
    {   "errcode": 40031,   "errmsg": "all list invalid"}
    
  • 示例代码

    var username = "test";
    var res = await _lazyQYContact.DeleteUsersforTagAsync(id, username);
    
    var party = 1;
    var res = await _lazyQYContact.DeleteUsersforTagAsync(id, party);
    

GetTagsAsync

  • 作用 : 获取标签列表

  • 官方文档 : https://work.weixin.qq.com/api/doc/90000/90135/90216

  • 返回值 dynamic

    {
       "errcode": 0,
       "errmsg": "ok",
       "taglist":[
          {"tagid":1,"tagname":"a"},
          {"tagid":2,"tagname":"b"}
       ]
    }
    
  • 示例代码

    var res = await _lazyQYContact.GetTagsAsync();
    

成员管理

CreateMemberAsync

public class MemberModel
{
    public MemberModel()
    {
        extattr = new ExternalAttr();
        external_profile = new ExternalProfile();
    }

    public string userid { get; set; }

    public string name { get; set; }

    public string alias { get; set; }

    public string mobile { get; set; }

    public int[] department { get; set; }

    public int[] order { get; set; }

    public string position { get; set; }

    public string gender { get; set; }

    public string email { get; set; }

    public int[] is_leader_in_dept { get; set; }

    public int? enable { get; set; }

    public string avatar_mediaid { get; set; }

    public string telephone { get; set; }

    public string address { get; set; }

    public int? main_department { get; set; }

    public ExternalAttr extattr { get; set; }

    public class ExternalAttr
    {
        public ExternalAttr() => attrs = new List<MemberAttrModel>();

        public List<MemberAttrModel> attrs { get; set; }
    }

    public bool? to_invite { get; set; }

    public string external_position { get; set; }

    public ExternalProfile external_profile { get; set; }

    public class ExternalProfile
    {
        public ExternalProfile() => external_attr = new List<MemberAttrModel>();

        public string external_corp_name { get; set; }

        public List<MemberAttrModel> external_attr { get; set; }

    }
}

​ 其中extattr属性的attrs属性和external_profile的external_attr属性为List

​ MemberAttrModel类有三种实现,参考如下

public class MemberAttrModel
{
    public int type { get; set; }

    public string name { get; set; }
}

public class TextMemberAttrModel : MemberAttrModel
{
    public TextMemberAttrModel() => text = new TextModel();

    public TextModel text { get; set; }

    public class TextModel
    {
        public string value { get; set; }
    }
}

public class WebMemberAttrModel : MemberAttrModel
{
    public WebMemberAttrModel() => web = new WebModel();

    public WebModel web { get; set; }

    public class WebModel
    {
        public string url { get; set; }

        public string title { get; set; }
    }
}

public class MiniMemberAttrModel : MemberAttrModel
{
    public MiniMemberAttrModel() => miniprogram = new MiniModel();

    public MiniModel miniprogram { get; set; }

    public class MiniModel
    {
        public string appid { get; set; }

        public string pagepath { get; set; }

        public string title { get; set; }
    }
}
  • 返回值 dynamic

    {
       "errcode": 0,
       "errmsg": "created"
    }
    
  • 示例代码

    MemberModel model = new MemberModel();
    model.userid = "LazyID";
    model.name = "Lazy";
    model.mobile = "13600000000";
    int[] depts = { 1 };
    model.department = depts;
    var text = new TextMemberAttrModel { type = 0, name = "证书" };
    text.text.value = "计算机二级证书";
    model.extattr.attrs.Add(text);
    
    res = await _lazyQYContact.CreateMemberAsync(model);
    

UpdateMemberAsync

  • 作用 : 更新成员

  • 官方文档 : https://work.weixin.qq.com/api/doc/90000/90135/90197

  • 参数

    • member : member为MemberModel类型,类型具体参考CreateMemberAsync
  • 返回值 dynamic

    {
       "errcode": 0,
       "errmsg": "updated"
    }
    
  • 示例代码

    MemberModel model = new MemberModel();
    model.userid = "LazyID";
    model.name = "Lazy";
    model.mobile = "13600000000";
    int[] depts = { 1, 2 };
    model.department = depts;
    var text = new TextMemberAttrModel { type = 1, name = "证书" };
    text.text.value = "计算机二级证书";
    model.extattr.attrs.Add(text);
    
    res = await _lazyQYContact.UpdateMemberAsync(model);
    

GetMemberAsync

  • 作用 : 更新成员

  • 官方文档 : https://work.weixin.qq.com/api/doc/90000/90135/90196

  • 参数

    • userid : 成员UserID。对应管理端的帐号,企业内必须唯一
  • 返回值 dynamic

    {
        "errcode": 0,
        "errmsg": "ok",
        "userid": "zhangsan",
        "name": "李四",
        "department": [1, 2],
        "order": [1, 2],
        "position": "后台工程师",
        "mobile": "13800000000",
        "gender": "1",
        "email": "zhangsan@gzdev.com",
        "is_leader_in_dept": [1, 0],
        "avatar": "http://wx.qlogo.cn/mmopen/ajNVdqHZLLA3WJ6DSZUfiakYe37PKnQhBIeOQBO4czqrnZDS79FH5Wm5m4X69TBicnHFlhiafvDwklOpZeXYQQ2icg/0",
        "thumb_avatar": "http://wx.qlogo.cn/mmopen/ajNVdqHZLLA3WJ6DSZUfiakYe37PKnQhBIeOQBO4czqrnZDS79FH5Wm5m4X69TBicnHFlhiafvDwklOpZeXYQQ2icg/100",
        "telephone": "020-123456",
        "alias": "jackzhang",
        "address": "广州市海珠区新港中路",
        "open_userid": "xxxxxx",
        "main_department": 1,
        "extattr": {
            "attrs": [
                {
                    "type": 0,
                    "name": "文本名称",
                    "text": {
                        "value": "文本"
                    }
                },
                {
                    "type": 1,
                    "name": "网页名称",
                    "web": {
                        "url": "http://www.test.com",
                        "title": "标题"
                    }
                }
            ]
        },
        "status": 1,
        "qr_code": "https://open.work.weixin.qq.com/wwopen/userQRCode?vcode=xxx",
        "external_position": "产品经理",
        "external_profile": {
            "external_corp_name": "企业简称",
            "external_attr": [{
                    "type": 0,
                    "name": "文本名称",
                    "text": {
                        "value": "文本"
                    }
                },
                {
                    "type": 1,
                    "name": "网页名称",
                    "web": {
                        "url": "http://www.test.com",
                        "title": "标题"
                    }
                },
                {
                    "type": 2,
                    "name": "测试app",
                    "miniprogram": {
                        "appid": "wx8bd80126147dFAKE",
                        "pagepath": "/index",
                        "title": "my miniprogram"
                    }
                }
            ]
        }
    }
    
  • 示例代码

    var userid = "LazyID";
    var res = await _lazyQYContact.GetMemberAsync(userid);
    

DeleteMemberAsync

  • 作用 : 删除成员

  • 官方文档 : https://work.weixin.qq.com/api/doc/90000/90135/90198

  • 参数

    • userid : 成员UserID。对应管理端的帐号,企业内必须唯一
  • 返回值 dynamic

    {
       "errcode": 0,
       "errmsg": "deleted"
    }
    
  • 示例代码

    var userid = "LazyID";
    var res = await _lazyQYContact.DeleteMemberAsync(userid);
    
posted @ 2020-08-28 20:59  LazyWeChat  阅读(224)  评论(0)    收藏  举报