企业微信通过应用获取联系人身份信息

2,743 阅读2分钟

企业微信的提供了OAuth的授权登录方式,可以让从企业微信或微信终端打开的网页获取联系人的身份信息,从而免去登录的环节。

 企业应用中的URL链接(包括自定义菜单或者消息中的链接),均可通过OAuth2.0验证接口来获取联系人的UserId身份信息。

 官方截图来一波,更加清晰 

1、前端构造网页授权链接,来获取code参数(用于后面作为参数,获取联系人userId)

 授权链接的拼接规范:

open.weixin.qq.com/connect/oau…

参数说明:

联系人(内部员工与客户联系人)点击后,页面将跳转至redirect_url?code=CODE&state=STATE,企业可根据code参数获取到联系人的userId。

返回的页面跳转地址:

2、获取access_token

注意:为了安全考虑,开发者请勿将access_token返回给前端,需要开发者保存在后台,所有访问企业微信api的请求由后台发起!!!

获取access_token是调用企业微信API接口的第一步,相当于创建了一个登录凭证,其他的业务API接口,都需要依赖与access_token(需明确access_token的颁发来源,使用正确的)来鉴权调用者身份。

请求方式:GET(HTTPS)

请求地址:qyapi.weixin.qq.com/cgi-bin/get…

参数:

权限说明:每个应用有独立的secret,获取到的access_token只能本应用使用,所以每个应用是的access_token应该分开来获取

注意事项:

开发者需要缓存access_token,用于后续接口的调用(注意:不能频繁的调用getten接口,否则会受到频率拦截)。当access_token失效或过期,要重新获取。

access_token的有效期通过返回的expires_in来传达,正常情况下为7200秒(2小时),有效期内重复获取返回相同结果,过期后获取会返回新的access_token。

企业微信可能会出于运营需要,提前使access_token失效,开发者应实现access_token失效时重新获取的逻辑。

3、获取访问者身份(即咱们需要的数据)

注意:得到code的外部用户必须存在于咱们的企业微信联系人中,否则返回结果(情况b)中没有external_userid

请求方式:GET(HTTPS)

请求地址:qyapi.weixin.qq.com/cgi-bin/use…

返回结果:

a)当用户为企业时(无论是否在应用可见范围内)返回示例如下:

b)非企业成员时,返回示例如下:

出错示例:

  1. {
  2. "errcode": 40029,
  3. "errmsg": "invalid code"
  4. }