注:文中绿色部分为摘自微信官方文档
在《微信企业号开发[一]——创建应用》介绍了如何创建应用,但是当用户点击应用跳转到我们设定的URL时,其实并没有带上用户的任何信息,为了获取用户信息,我们需要借助微信提供的OAuth2.0接口。
获取用户信息分两步:
- 构造URL获取code
- 根据code获取成员信息
一、构造URL获取code
企业如果需要员工在跳转到企业网页时带上员工的身份信息,需构造如下的链接:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=CORPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
参数说明
参数 | 必须 | 说明 |
---|---|---|
appid | 是 | 企业的CorpID |
redirect_uri | 是 | 授权后重定向的回调链接地址,请使用urlencode对链接进行处理 |
response_type | 是 | 返回类型,此时固定为:code |
scope | 是 | 应用授权作用域,此时固定为:snsapi_base |
state | 否 | 重定向后会带上state参数,企业可以填写a-zA-Z0-9的参数值,长度不可超过128个字节 |
#wechat_redirect | 是 | 微信终端使用此参数判断是否需要带上身份信息 |
员工点击后,页面将跳转至 redirect_uri?code=CODE&state=STATE,企业可根据code参数获得员工的userid。
摘自http://qydev.weixin.qq.com/wiki/index.php?title=OAuth%E9%AA%8C%E8%AF%81%E6%8E%A5%E5%8F%A3
appid
如下图所示获取
scope
可以使用snsapi_base或snsapi_userinfo,snsapi_userinfo能够获取到更多信息,但需用户显式授权
修改URL
假设我们要访问的页面是http://abc.com/homepage.html,CORPID为wx7ce4xxxxxxxa4dd1,最终我们构造的URL为
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx7ce4xxxxxxxa4dd1&redirect_uri=http%3a%2f%2fabc.com%2fhomepage.html&response_type=code&scope=snsapi_base&state=1#wechat_redirect
最后把应用的主页URL设置为该URL即可,当用户点击应用时最终跳转的页面为http://abc.com/homepage.html?code=xxxx&state=1
注意:应用需设置可信域名,如果最终跳转页面的域名与可信域名不符将无法跳转
二、根据code获取成员信息
根据code获取成员信息
- 请求说明
Https请求方式:GET
https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token=ACCESS_TOKEN&code=CODE
- 参数说明
参数 | 必须 | 说明 |
---|---|---|
access_token | 是 | 调用接口凭证 |
code | 是 | 通过成员授权获取到的code,每次成员授权带上的code将不一样,code只能使用一次,10分钟未被使用自动过期 |
- 权限说明
跳转的域名须完全匹配管理组中任一应用的可信域名。
- 返回结果
a)企业成员授权时返回示例如下:
{
"UserId":"USERID",
"DeviceId":"DEVICEID"
}
摘自http://qydev.weixin.qq.com/wiki/index.php?title=OAuth%E9%AA%8C%E8%AF%81%E6%8E%A5%E5%8F%A3
目前我们已经获取到code了,还差一个access_token参数即可获取到用户的信息,关于access_token的获取将在下一节《微信企业号开发[三]——调用微信接口》继续讲解
[目录]
[上一篇]微信企业号开发[一]——创建应用
[下一篇]微信企业号开发[三]——调用微信接口