通讯录

基本配置

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

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

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

成员管理

创建成员

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

微信官方文档

读取成员

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

微信官方文档

更新成员

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

微信官方文档

删除成员

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

微信官方文档

批量删除成员

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

微信官方文档

获取部门成员

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

微信官方文档

获取部门成员详情

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

微信官方文档

userid和openid互转

userid转opened

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

openid转userid

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

微信官方文档

二次验证

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

微信官方文档

邀请成员

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

微信官方文档

获取加入企业二维码

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

微信官方文档

获取企业活跃成员数

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

微信官方文档

部门管理

获取部门列表

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

微信官方文档

获取子部门ID列表

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

微信官方文档

创建部门

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

微信官方文档

更新部门

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

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

微信官方文档

删除部门

  1. services.WeComContactApp.Department.Delete(id)

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

微信官方文档

标签管理

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

创建标签

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

微信官方文档

更新标签名字

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

微信官方文档

删除标签

  1. WeComApp.UserTag.Delete(defaultDepartmentId)

微信官方文档

获取标签列表

  1. WeComApp.UserTag.List()

微信官方文档

获取标签成员

  1. WeComApp.UserTag.Get(defaultTagId)

微信官方文档

增加标签成员

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

微信官方文档

删除标签成员

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

微信官方文档

异步批量接口

增量更新成员

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

微信官方文档

全量覆盖成员

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

微信官方文档

全量覆盖部门

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

微信官方文档

获取异步任务结果

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

微信官方文档

通讯录回调通知

互联企业

获取应用的可见范围

  1. WeComApp.UserLinkedCorp.GetPermList()

微信官方文档

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

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

微信官方文档

获取互联企业部门成员

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

微信官方文档

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

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

微信官方文档

获取互联企业部门列表

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

微信官方文档

异步导出接口

导出成员

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

微信官方文档

导出成员详情

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

微信官方文档

导出部门

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

微信官方文档

导出标签成员

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

微信官方文档

获取导出结果

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

微信官方文档

导出任务完成异步通知

微信官方文档

使用示例

参考:PowerWechatTutorial