通讯录
基本配置
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]")