Skip to content

通讯录

基本配置

PowerWechat配置参考: 入门, 唯一的区别就是Secret变成了通讯录secret。

Secret原则上需要使用 通讯录管理secret,也可以使用 应用secret

WeComContactApp, err := work.NewWork(&work.UserConfig{
  // ...
  Secret: "[contacts secret]", // 通讯录secret或者应用secret
  // ...
})

成员管理

创建成员

WeComApp.User.Create(ctx, &request.RequestUserDetail{
  UserID:     "[userId]",
  Name:       "[name]",
  Mobile:     "[mobile]",
  Department: []int{0},
})

微信官方文档

读取成员

WeComApp.User.Get("[userId]")

微信官方文档

更新成员

WeComApp.User.Update(ctx, &request.RequestUserDetail{
  UserID: "[userId]",
  Name:   "[name]",
})

微信官方文档

删除成员

WeComApp.User.Delete("[userId]")

微信官方文档

批量删除成员

WeComApp.User.BatchDelete([]string{"[userId1]", "[userId2]"})

微信官方文档

获取部门成员

departmentId := 1
fetchChild := 1
WeComApp.User.GetDepartmentUsers(departmentId, fetchChild)

微信官方文档

获取部门成员详情

departmentId := 1
fetchChild := 1
WeComApp.User.GetDetailedDepartmentUsers(departmentId, fetchChild)

微信官方文档

userid和openid互转

userid转opened

WeComApp.User.UserIdToOpenid("[userId]")

openid转userid

WeComApp.User.OpenIDToUserID("[openid]")

微信官方文档

二次验证

WeComApp.User.Accept("[userId]")

微信官方文档

邀请成员

WeComApp.User.Invite(&power.HashMap{
  "user": []string{"[userId1]", "[userId2]"},
})

微信官方文档

获取加入企业二维码

size := 3
WeComApp.User.GetJoinQrCode(size)

微信官方文档

获取企业活跃成员数

WeComApp.User.GetActiveStat("2021-09-13")

微信官方文档

部门管理

获取部门列表

// 0 表示获取企业所有部门
id := 0
WeComContactApp.Department.List(id)

微信官方文档

获取子部门ID列表

// 0 表示获取企业所有部门
id := 0
WeComContactApp.Department.SimpleList(id)

微信官方文档

创建部门

services.WeComContactApp.Department.Create(&power.HashMap{
  "name": "IT支持部",
  "parentid": 1, // 父部门id,32位整型
  "id": id, // 部门id,32位整型,指定时必须大于1。若不填该参数,将自动生成id
})

微信官方文档

更新部门

services.WeComContactApp.Department.Update(id, &power.HashMap{
  "name": "IT支持部1",
  "parentid": 1,
})

需要更新哪个部门字段就提交对应字段。

微信官方文档

删除部门

services.WeComContactApp.Department.Delete(id)

注:不能删除根部门;不能删除含有子部门、成员的部门

微信官方文档

标签管理

这里为了方便文档展示,使用了const defaultTagId = 100,实际应用中请自行改成合适的tagId

创建标签

WeComApp.UserTag.Create("TestTag", defaultTagId)

微信官方文档

更新标签名字

WeComApp.UserTag.Update("TestTag1", defaultTagId)

微信官方文档

删除标签

WeComApp.UserTag.Delete(defaultDepartmentId)

微信官方文档

获取标签列表

WeComApp.UserTag.List()

微信官方文档

获取标签成员

WeComApp.UserTag.Get(defaultTagId)

微信官方文档

增加标签成员

WeComApp.UserTag.TagUsers(defaultTagId, []string{"[userId]"})

微信官方文档

删除标签成员

WeComApp.UserTag.TagUsers(defaultTagId, []string{"[userId]"})

微信官方文档

异步批量接口

增量更新成员

callback := &power.StringMap{
  "url":            "xxx",
  "token":          "xxx",
  "encodingaeskey": "xxx",
}
WeComApp.UserBatchJobs.SyncUser("[mediaID]", true, callback)

微信官方文档

全量覆盖成员

callback := &power.StringMap{
  "url":            "xxx",
  "token":          "xxx",
  "encodingaeskey": "xxx",
}
WeComApp.UserBatchJobs.ReplaceUser("[mediaID]", true, callback)

微信官方文档

全量覆盖部门

WeComApp.UserLinkedCorp.GetDepartmentList("[departmentID]")

微信官方文档

获取异步任务结果

WeComApp.UserBatchJobs.GetBatchResult("[jobID]")

微信官方文档

通讯录回调通知

互联企业

获取应用的可见范围

WeComApp.UserLinkedCorp.GetPermList()

微信官方文档

获取互联企业成员详细信息

WeComApp.UserLinkedCorp.GetUser("[userID]")

微信官方文档

获取互联企业部门成员

departmentID := "10001"
fetchChild := true
WeComApp.UserLinkedCorp.GetUserSimpleList(departmentID, fetchChild)

微信官方文档

获取互联企业部门成员详情

departmentID := "10001"
fetchChild := true
WeComApp.UserLinkedCorp.GetUserList(departmentID, true)

微信官方文档

获取互联企业部门列表

departmentID := "10001"
WeComApp.UserLinkedCorp.GetDepartmentList(departmentID)

微信官方文档

异步导出接口

导出成员

encodingAESKey := ""
blockSize := int64(1000000)
WeComApp.UserExportJobs.SimpleUser(encodingAESKey, blockSize)

微信官方文档

导出成员详情

encodingAESKey := ""
blockSize := int64(1000000)
WeComApp.UserExportJobs.User(encodingAESKey, blockSize)

微信官方文档

导出部门

encodingAESKey := ""
blockSize := int64(1000000)
WeComApp.UserExportJobs.Department(encodingAESKey, blockSize)

微信官方文档

导出标签成员

encodingAESKey := ""
blockSize := int64(1000000)
tagID := 1
WeComApp.UserExportJobs.TagUser(tagID, encodingAESKey, blockSize)

微信官方文档

获取导出结果

WeComApp.UserExportJobs.GetExportResult("[jobID]")

微信官方文档

导出任务完成异步通知

微信官方文档

使用示例

参考:PowerWechatTutorial

通讯录 has loaded