如何打通企业微信跟小程序/公众号的用户体系

6,311 阅读5分钟

需求背景

这两年私域运营的竞争愈演愈烈,而企业微信不仅是公司内部沟通管理工具,更是企业用来沉淀私域流量精准触达用户的利器。那么,如何将企业微信的客户跟小程序、公众号的用户关联起来必然是一个硬核需求,试想一下,如果将微信这三驾马车中的用户体系完全打通,互相导流,精准刻画用户画像,这样就能实现企业在整个微信生态中的精细化运营,构建企业在微信体系的护城河。
下面就详细介绍一下如何将这3者打通。

基本概念扫盲

用户的含义:在企业微信中,其实有两种用户,一种是企业成员:企业的内部人员即企业员工;另一种是客户:通过企业成员加进来的外部人员。而客户又分为两种类型:1、微信客户;2、企业微信客户。
需要明确的是:我们这里要打通企业微信跟公众号小程序的用户,指的是将企业微信中的微信客户跟公众号小程序关联起来。

UnionID:了解微信体系的同学应该都知道,只要把你的公众号、小程序都绑定在同一个微信开放平台,那么对于同一个微信用户的UnionID就是唯一的。因此我们可以通过UnionID来关联多个公众号小程序的用户,这也是跟企业微信打通的关键。

解决思路

上文我们已经提到,其实要将公众号、小程序、企业微信3者打通的关键就是通过unionid关联起来,我们只要将公众号和小程序绑定到同一个微信开放平台两者的unionid就能拿到了,现在的问题是微信开放平台不支持绑定企业微信。
幸运的是企业微信可以绑定一个公众号或者小程序,绑定之后通过企业微信提供的api就可以获取到微信客户的unionid(跟此客户在所绑定的公众号或小程序的unionid一样),如此一来,就可以通过uninonid将企业微信、公众号、小程序3者的用户关联起来了。

操作步骤

一、后台配置

1、给企业成员开通添加客户的功能

企微后台操作路径:客户联系>权限配置>使用范围
只有在这里给企业成员开通客户联系的功能后,企业成员才能去添加客户。
企微1.jpeg

2、企业微信绑定公众号或小程序

企微后台操作路径:客户联系>客户>点开「api」小按钮>点击「微信开发者ID」旁的绑定按钮去到微信公众平台进行授权。
注意:绑定的公众号或小程序主体需与企业微信主体一致,且仅能绑定一个,授权的公众号或小程序要绑定到微信开放平台。
企微2.jpeg

二、调用接口获取数据

完成后台配置,我们就可以通过调用企业微信提供的api去获取带有unionid的客户数据了。

1、获取access_token

点击查看官方文档
企业微信的接口调用都需要提供access_token参数,access_token需要通过企业ID和secret获取。
企业ID的获取路径是「我的企业>企业ID」。
secret比较特殊的地方是:企业微信不同的业务功能有不同的secret。而我们这里使用的客户联系功能的secret就是后台配置中第二步所看到的secret。
Python伪代码:

async def get_access_token():
    params = {'corpid': 'xxx', 'corpsecret': 'xxx'}
    res = await get('https://qyapi.weixin.qq.com/cgi-bin/gettoken', params)
    access_token = res['access_token']
    return access_token

2、获取配置了客户联系功能的成员列表

点击查看官方文档
Python代码实现:

    async def get_staff_list(self):
        """获取配置了客户联系功能的成员列表"""
        access_token = await self.get_token()
        url = f'https://qyapi.weixin.qq.com/cgi-bin/externalcontact/get_follow_user_list?access_token={access_token}'
        res = await get(url, {})
        staff_list = res['follow_user']
        return staff_list

返回的是企业成员ID,示例:["zhangsan","lisi"]

3、批量获取客户详情

点击查看官方文档
Python代码实现:

    async def batch_get_customer_detail(self, userid, cursor):
        """批量获取客户详情"""
        access_token = await self.get_token()
        url = f'https://qyapi.weixin.qq.com/cgi-bin/externalcontact/batch/get_by_user?access_token={access_token}'
        body = {
            'userid': userid,
            'cursor': cursor,
            'limit': 100,
        }
        d = await post_json(url, {}, body)
        return d

将上一步得到的企业成员ID传入此方法中即可得到通过该企业成员添加的客户,返回信息中如果客户类型是微信客户会包含unionid字段。

至此,我们就通过unionid成功将企业微信、小程序、公众号的用户关联起来,实现了用户数据打通。

如果需要完整的代码,可以关注公众号「Frank的梦呓」回复「企业微信」自动获取,也可以回复「加群」进群交流。

进阶玩法

如果你有企业微信的定制化开发需求,对这部分内容可能会比较感兴趣。
上文我们实现的是用户数据层面的打通,但你可能并不满足于此,比如你希望在自己的小程序中直接获取企业微信的客户信息,甚至跟客户聊天,那么企业微信也提供了专门的小程序SDK,下面简单介绍一下小程序如何能具备这样的能力。

1、小程序关联到企业微信

点击查看官方文档
企微后台操作路径:应用管理>应用>创建应用(关联小程序)
企微3.png

2、给小程序配置使用客户功能的权限

企微后台操作路径:客户联系>客户>点开「api」小按钮>可调用应用>选择上一步关联的小程序
企微2.jpeg

3、调用小程序组件接口实现定制化功能

经过上面两个步骤,你的小程序就有权限调用企业微信提供的小程序sdk客户相关的组件了,比如弹出客户选择列表发起会话(点击查看接口文档)。
企微4.png
当然了,调用小程序组件还需要实现企业微信登录等流程,感兴趣的可以查看官方文档


推荐阅读:

PS: 欢迎关注我的商城项目, Github, Gitee