通讯录
基本配置
PowerWechat配置参考: 入门, 唯一的区别就是Secret变成了通讯录secret。
Secret原则上需要使用 通讯录管理secret,也可以使用 应用secret。
go
WeComContactApp, err := work.NewWork(&work.UserConfig{
// ...
Secret: "[contacts secret]", // 通讯录secret或者应用secret
// ...
})成员管理
创建成员
go
WeComApp.User.Create(ctx, &request.RequestUserDetail{
UserID: "[userId]",
Name: "[name]",
Mobile: "[mobile]",
Department: []int{0},
})读取成员
go
WeComApp.User.Get("[userId]")更新成员
go
WeComApp.User.Update(ctx, &request.RequestUserDetail{
UserID: "[userId]",
Name: "[name]",
})删除成员
go
WeComApp.User.Delete("[userId]")批量删除成员
go
WeComApp.User.BatchDelete([]string{"[userId1]", "[userId2]"})获取部门成员
go
departmentId := 1
fetchChild := 1
WeComApp.User.GetDepartmentUsers(departmentId, fetchChild)获取部门成员详情
go
departmentId := 1
fetchChild := 1
WeComApp.User.GetDetailedDepartmentUsers(departmentId, fetchChild)userid和openid互转
userid转opened
go
WeComApp.User.UserIdToOpenid("[userId]")openid转userid
go
WeComApp.User.OpenIDToUserID("[openid]")二次验证
go
WeComApp.User.Accept("[userId]")邀请成员
go
WeComApp.User.Invite(&power.HashMap{
"user": []string{"[userId1]", "[userId2]"},
})获取加入企业二维码
go
size := 3
WeComApp.User.GetJoinQrCode(size)获取企业活跃成员数
go
WeComApp.User.GetActiveStat("2021-09-13")部门管理
获取部门列表
go
// 0 表示获取企业所有部门
id := 0
WeComContactApp.Department.List(id)获取子部门ID列表
go
// 0 表示获取企业所有部门
id := 0
WeComContactApp.Department.SimpleList(id)创建部门
go
services.WeComContactApp.Department.Create(&power.HashMap{
"name": "IT支持部",
"parentid": 1, // 父部门id,32位整型
"id": id, // 部门id,32位整型,指定时必须大于1。若不填该参数,将自动生成id
})更新部门
go
services.WeComContactApp.Department.Update(id, &power.HashMap{
"name": "IT支持部1",
"parentid": 1,
})需要更新哪个部门字段就提交对应字段。
删除部门
go
services.WeComContactApp.Department.Delete(id)注:不能删除根部门;不能删除含有子部门、成员的部门
标签管理
这里为了方便文档展示,使用了const defaultTagId = 100,实际应用中请自行改成合适的tagId
创建标签
go
WeComApp.UserTag.Create("TestTag", defaultTagId)更新标签名字
go
WeComApp.UserTag.Update("TestTag1", defaultTagId)删除标签
go
WeComApp.UserTag.Delete(defaultDepartmentId)获取标签列表
go
WeComApp.UserTag.List()获取标签成员
go
WeComApp.UserTag.Get(defaultTagId)增加标签成员
go
WeComApp.UserTag.TagUsers(defaultTagId, []string{"[userId]"})删除标签成员
go
WeComApp.UserTag.TagUsers(defaultTagId, []string{"[userId]"})异步批量接口
增量更新成员
go
callback := &power.StringMap{
"url": "xxx",
"token": "xxx",
"encodingaeskey": "xxx",
}
WeComApp.UserBatchJobs.SyncUser("[mediaID]", true, callback)全量覆盖成员
go
callback := &power.StringMap{
"url": "xxx",
"token": "xxx",
"encodingaeskey": "xxx",
}
WeComApp.UserBatchJobs.ReplaceUser("[mediaID]", true, callback)全量覆盖部门
go
WeComApp.UserLinkedCorp.GetDepartmentList("[departmentID]")获取异步任务结果
go
WeComApp.UserBatchJobs.GetBatchResult("[jobID]")通讯录回调通知
互联企业
获取应用的可见范围
go
WeComApp.UserLinkedCorp.GetPermList()获取互联企业成员详细信息
go
WeComApp.UserLinkedCorp.GetUser("[userID]")获取互联企业部门成员
go
departmentID := "10001"
fetchChild := true
WeComApp.UserLinkedCorp.GetUserSimpleList(departmentID, fetchChild)获取互联企业部门成员详情
go
departmentID := "10001"
fetchChild := true
WeComApp.UserLinkedCorp.GetUserList(departmentID, true)获取互联企业部门列表
go
departmentID := "10001"
WeComApp.UserLinkedCorp.GetDepartmentList(departmentID)异步导出接口
导出成员
go
encodingAESKey := ""
blockSize := int64(1000000)
WeComApp.UserExportJobs.SimpleUser(encodingAESKey, blockSize)导出成员详情
go
encodingAESKey := ""
blockSize := int64(1000000)
WeComApp.UserExportJobs.User(encodingAESKey, blockSize)导出部门
go
encodingAESKey := ""
blockSize := int64(1000000)
WeComApp.UserExportJobs.Department(encodingAESKey, blockSize)导出标签成员
go
encodingAESKey := ""
blockSize := int64(1000000)
tagID := 1
WeComApp.UserExportJobs.TagUser(tagID, encodingAESKey, blockSize)获取导出结果
go
WeComApp.UserExportJobs.GetExportResult("[jobID]")