企业微信同步内部员工通讯录 golang 实现

更新日期: 2025-05-12 阅读次数: 92 字数: 855 分类: golang

基于自建应用、自有系统。

腾讯官方文档

概述 - 文档 - 企业微信开发者中心

https://developer.work.weixin.qq.com/document/path/90193

通讯录同步相关接口,可以对部门、成员、标签等通讯录信息进行查询、添加、修改、删除等操作。

  • 企业如果需要从自有的系统同步通讯录到企业微信,需要使用通讯录同步secret。
  • 自建应用、代开发应用、第三方应用在提供功能时,往往需要获取通讯录,开发者可查阅成员、部门、标签相关的接口说明。注意,自建应用、代开发应用、第三方应用仅能读取通讯录,不能编辑,且仅能读取可见范围内的通讯录。
  • 2022年8月15日起,通过“通讯录同步secret”调用接口或接收通讯录变更事件时,将不再返回除ID(userid和部门ID)之外的其他信息,包括但不限于姓名、手机号、部门名等。

获取成员信息的方式

  • 从2022年6月20号20点开始,新创建的自建应用与代开发应用,调用该接口时,不再返回以下字段:头像、性别、手机、邮箱、企业邮箱、员工个人二维码、地址,应用需要通过oauth2手工授权的方式获取管理员与员工本人授权的字段。
  • 从2022年8月15日10点开始,“企业管理后台 - 管理工具 - 通讯录同步”的新增IP将不能再调用此接口,企业可通过「获取成员ID列表」和「获取部门ID列表」接口获取userid和部门ID列表

https://developer.work.weixin.qq.com/document/path/96255

也就是说,除非 OAuth2 授权,否则无法获取到成员的信息,只能拿到 ID 和部门 ID,以及姓名,和部门名称。其他的拿不到。 不过也足够了。

官方的代码示例

https://developer.work.weixin.qq.com/devtool/introduce?id=10520

里面提供了一些几处代码示例,PHP 代码:

  • 获取通讯录应用的access_token
  • 封装数据包发送到企业微信后台。以新增部门为例
  • 应用管理
  • 消息推送
  • 回复消息
  • 网页开发,获取自定义应用的 jsapi_ticket

三方库

go-laoji/wecom-go-sdk: 企业微信第三方应用|自建代开发|自建应用 三合一 sdk golang版;支持服务商应用运营体系

github 地址:

https://github.com/go-laoji/wecom-go-sdk

有一个官方的个人 golang 版本实现:

https://github.com/sbzhu/weworkapi_golang

感觉简单参考一下加密解密即可,没有必要使用三方库。

企业内部开发文档

https://developer.work.weixin.qq.com/document/path/90487

注意切换页面左上角的应用类型:

  • 企业内部开发 (目前的场景,需要选择这个)
  • 第三方应用开发
  • 服务商代开发
  • 智慧硬件开发

微信关注我哦 👍

大象工具微信公众号

我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式