Skip to content

联系人

通讯录同步、详情、搜索、加好友、备注、标签。

本模块接口全部 POST,请求地址 = {BASE_URL} + 路径。

接口用途安全级别
同步通讯录 ID 列表
/wx-api/api/contact/getSyncList
拉取内部通讯录(成员 + 部门)的「节点列表 + 游标」,是通讯录同步的第一步。只读
批量获取通讯录详细信息
/wx-api/api/contact/fetchUsersProfileBatch
getSyncList 的节点列表换成每个节点的详细资料(成员资料 / 部门信息)。只读
获取用户信息详情
/wx-api/api/contact/getUserProfileDetail
按用户 id 列表直接查最全的用户资料(内部成员或外部联系人均可)。只读
手机号搜索
/wx-api/api/contact/phoneNumberSearch
按手机号搜索用户,拿到添加好友所需的票据(wxTicket)与身份(openid / uin / corpId),供后续加好友接口使用。只读
通过手机号添加个微
/wx-api/api/contact/phoneNumberAddWechat
phoneNumberSearch 拿到的票据,向对方的个人微信发起好友申请。写操作
通过手机号添加企微
/wx-api/api/contact/phoneNumberAddWework
phoneNumberSearch 拿到的企微身份与票据,向对方的企业微信发起好友/客户申请。写操作
同意新客户
/wx-api/api/contact/agreeToNewCustomer
对方主动申请添加你为好友/客户时,调用本接口同意写操作
更新外部联系人信息
/wx-api/api/contact/updateExternalContactInfo
修改某个外部联系人(客户)的备注、公司、真实备注、备注手机号等。写操作
删除联系人
/wx-api/api/contact/delete
删除一个联系人(解除好友关系)。高风险
设置同事备注
/wx-api/api/contact/setColleagueRemark
内部成员(同事)设置备注 / 描述。写操作
添加名片
/wx-api/api/contact/addCard
通过收到的「个人名片消息」添加对方为好友。写操作
添加群成员为好友
/wx-api/api/contact/addRoomMember
群内某成员添加为自己的好友(不是把人拉进群)。写操作
同步外部数据(非企业)
/wx-api/api/contact/syncExternal
增量同步外部联系人(客户)数据;收到回调 contentType=2131(外部联系人变更)后调用拉增量。只读
更新用户标签
/wx-api/api/contact/updateLabel
给某个用户打 / 去 / 改标签(操作的是「用户 ↔ 标签」的关联)。写操作

安全级别与「实测 日期」标记的含义见接口总览的图例

企微通讯录 / 客户数据不是一次性拉全,而是「先拿 id 列表 + 游标,再按 id 拉详情;之后靠回调驱动增量」的两段式。

内部通讯录

  1. getSyncList —— 拿「节点列表」nodeList[],每项是一个通讯录节点 {type, vid?, partyId, seq}
    • type = 节点类型:1 = 成员(个人,带 vid)/ 2 = 部门(无 vid,只有 partyId)。
    • vid = 联系人 id(成员的唯一 id,等于其 uin)。
    • partyId = 部门/组织 id(该成员所在部门;type=2 时即部门自身 id)。
    • seq = 同步游标(单条记录的版本号,int64,值越大越新)。
    • 同时返回 svrVersion(整体增量版本号,字符串)。首次传空 svrVersion = 全量;下次把上次的 svrVersion 回传 = 增量。
  2. fetchUsersProfileBatch —— 把 nodeList 原样传入(可分批),换回每个节点的详细资料 patchList[](成员 → member 对象,部门 → department 对象)。
  3. 需要单个/少量用户的完整资料时,用 getUserProfileDetail(直接按 vid/uin 列表查,返回更全的 info,含 level)。

外部联系人(客户)

客户 = 外部联系人。

  • syncExternal —— 增量拉外部联系人(客户)列表。seq 是游标(首次 0),返回 data.{list[], hasNext, seq}hasNext=true 时用返回的新 seq 继续翻页,直到 hasNext=false。建议持久化最新 seq
  • 回调驱动:客户资料变更时,系统会推送 contentType = 2131(外部联系人信息发生变更)的系统消息,收到后再调一次 syncExternal 拉增量;个人标签变更推 2186,去调标签同步接口。报文见回调字典 · 类型速查表
  • 添加客户 / 手机号加好友:先 phoneNumberSearchwxTicket 等票据,再走 phoneNumberAddWechat(个微)/ phoneNumberAddWework(企微);对方申请加你时用 agreeToNewCustomer 同意。

用户对象字段字典

member / info / userInfo / contactInfo 这几个「用户对象」字段高度重合,统一在此说明,后续各接口的响应表只列顶层结构并回指本字典。

字段类型含义
uinint64用户唯一 id;内部成员等于其 vid,外部客户等于 id。int64,注意精度。
namestring昵称 / 显示名
realNamestring实名(已脱敏为「张**」)
englishNamestring英文名
aliasstring别名 / 花名
mobilestring手机号(仅内部同事和已授权场景可见)
phonestring电话(外部对象常为空)
internationCodestring国际区号,如 86
emailAddrstring个人邮箱
bizMailstring企业邮箱
birthdaystring生日 YYYY-MM-DD HH:MM:SS
genderint性别:1 男 / 2 女 / 0 未知
job / positionstring职位 / 职务
externPositionstring对外展示职位,base64 编码(如 5oC757uP55CG→「总经理」)
numberstring工号
iconUrlstring头像 URL
corpIdint64所属企业 id
partyIdint64所在部门 id
mainPartyIdint64主部门 id
dispOrder / partyMemberDispOrderint通讯录 / 部门内显示排序
isNameVerifiedbool是否已实名认证
nameVerifyStatusint实名认证状态(观测 1
inviteVidint64邀请人 vid
vCodestring名片/验证码(形如 vc31f1...
unionIdstring微信 unionId(跨应用用户标识)
customInfo / externalCustomInfoobject自定义字段集合(常为空对象)
holidayInfoobject休假信息(holidayStatus / holidayDesc / ...)
tencentInfoobject腾讯生态相关(常为空对象)
isSyncInnerPositionbool是否同步内部职位
hashint数据 hash(变更检测用)
createSourceint创建来源(外部客户常见)
superiorsarray上级链(汇报关系),元素为对象。
xcxCorpAddressstring小程序名片-企业地址,base64 编码。
businessDescobject业务描述自定义字段:{fieldName(base64), fieldId(base64,如 busi_desc), fieldType};内部成员/外部客户均可能出现。
corpDescInfoobject企业描述信息(常为空对象 {})。
corpDescobject / string企业描述(仅 getUserProfileDetail 的部分 info 出现)。
holidayInfo.vacationSyncTypeintholidayInfo 内字段:休假同步类型。
以下字段含义未完全公开,原样透传即可
字段类型说明
mobileAreaCodeint手机区号(常为 0)
bindEmailStatusint邮箱绑定状态(观测到 2=已绑定 / 1
gidint64全局 id(跨企业标识)
attr / attr2 / attr3int属性位掩码(bitmask)
bizUinint64企业 uin
vCorpUseStatusint企业使用状态(观测 1000
xcxStyleint小程序名片样式
personalWorkTypeint个人工作类型
schoolUserType / collegeIdentityint学校 / 高校身份类型