7.企业微信-2.ILazyQYContact
部门管理
CreateDeptAsync
-
作用 : 创建部门
-
参数
- 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
-
作用 : 修改部门
-
参数
- 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
-
作用 : 删除部门
-
参数
- id : 部门id
-
返回值 dynamic
{ "errcode": 0, "errmsg": "deleted" } -
示例代码
var res = await _lazyQYContact.DeleteDeptAsync(id);
GetDeptsAsync
-
作用 : 获取部门列表
-
参数
- 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
-
作用 : 创建标签
-
参数
- tagid : 标签id,非负整型,指定此参数时新增的标签会生成对应的标签id,不指定时则以目前最大的id自增.
- tagname : 标签名称
-
返回值 dynamic
{ "errcode": 0, "errmsg": "created" "tagid": 12 } -
示例代码
var res = await _lazyQYContact.CreateTagAsync(tagid, tagname);
UpdateTagAsync
-
作用 : 更新标签名字
-
参数
- tagid : 标签id
- tagname : 标签名称
-
返回值 dynamic
{ "errcode": 0, "errmsg": "updated" } -
示例代码
var res = await _lazyQYContact.UpdateTagAsync(tagid, tagname);
DeleteTagAsync
-
作用 : 删除标签
-
参数
- tagid : 标签id
-
返回值 dynamic
{ "errcode": 0, "errmsg": "deleted" } -
示例代码
var res = await _lazyQYContact.DeleteTagAsync(tagid);
GetTagUsersAsync
-
作用 : 获取标签成员
-
参数
- tagid : 标签id
-
返回值 dynamic
{ "errcode": 0, "errmsg": "ok", "tagname": "乒乓球协会", "userlist": [ { "userid": "zhangsan", "name": "李四" } ], "partylist": [2] } -
示例代码
var res = await _lazyQYContact.GetTagUsersAsync(tagid);
AddUsersforTagAsync
-
作用 : 增加标签成员
-
参数 : 该方法包含两个重载函数
-
重载函数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
-
作用 : 删除标签成员
-
参数 : 该方法包含两个重载函数
-
重载函数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
-
作用 : 获取标签列表
-
返回值 dynamic
{ "errcode": 0, "errmsg": "ok", "taglist":[ {"tagid":1,"tagname":"a"}, {"tagid":2,"tagname":"b"} ] } -
示例代码
var res = await _lazyQYContact.GetTagsAsync();
成员管理
CreateMemberAsync
-
作用 : 创建成员
-
参数
- member : member为MemberModel类型,类型具体参考如下
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
-
作用 : 更新成员
-
参数
- 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
-
作用 : 更新成员
-
参数
- 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
-
作用 : 删除成员
-
参数
- userid : 成员UserID。对应管理端的帐号,企业内必须唯一
-
返回值 dynamic
{ "errcode": 0, "errmsg": "deleted" } -
示例代码
var userid = "LazyID"; var res = await _lazyQYContact.DeleteMemberAsync(userid);

浙公网安备 33010602011771号