小程序学习

企业微信对接企业自建应用(小程序、h5登陆认证)

2018-11-15  本文已影响0人  菜鸟的旅行日记

企业微信与自建h5应用和小程序对接

1.企业微信对接h5

       网页授权登登陆链接

https://open.weixin.qq.com/connect/oauth2/authorize?appid=CORPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&agentid=AGENTID&state=STATE#wechat_redirect

参数说明:

参数说明

appid是企业的CorpID

redirect_uri是授权后重定向的回调链接地址,请使用urlencode对链接进行处理

response_type是返回类型,此时固定为:code

scope是应用授权作用域。

snsapi_base

静默授权,可获取成员的的基础信息(UserId与DeviceId);

snsapi_userinfo

静默授权,可获取成员的详细信息,但不包含手机、邮箱;

snsapi_privateinfo

手动授权,可获取成员的详细信息,包含手机、邮箱注意:企业自建应用可以根据userid获取成员详情,无需使用snsapi_userinfo和snsapi_privateinfo两种scope。更多说明见scope

agentid否企业应用的id。当scope是snsapi_userinfo或snsapi_privateinfo时,该参数必填注意redirect_uri的域名必须与该应用的可信域名一致。

state否重定向后会带上state参数,企业可以填写a-zA-Z0-9的参数值,长度不可超过128个字节

#wechat_redirect是终端使用此参数判断是否需要带上身份信息

员工点击后,页面将跳转至redirect_uri?code=CODE&state=STATE,企业可根据code参数获得员工的userid。code长度最大为512字节。

获取access_token

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

请求方式: GET(HTTPS)请求地址:https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRECT

注:此处标注大写的单词ID和SECRET,为需要替换的变量,根据实际获取值更新。其它接口也采用相同的标注,不再说明。

参数说明:

参数说明

corpid是企业ID,获取方式参考:术语说明-corpid

corpsecret是应用的凭证密钥,获取方式参考:术语说明-secret

权限说明:每个应用有独立的secret,所以每个应用的access_token应该分开来获取返回结果:

{

        "errcode": 0,

        "errmsg": "ok",

        "access_token": "accesstoken000001",

        "expires_in": 7200

}

参数说明:

参数说明

errcode出错返回码,为0表示成功,非0表示调用失败

errmsg返回码提示语

access_token获取到的凭证,最长为512字节

expires_in凭证的有效时间(秒)

注意事项:

a.

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

b.

access_token的有效期通过返回的expires_in来传达,正常情况下为7200秒(2小时),有效期内重复获取返回相同结果,过期后获取会返回新的access_token。由于企业微信每个应用的access_token是彼此独立的,所以进行缓存时需要区分应用来进行存储。

c.

access_token至少保留512字节的存储空间。

d.

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

根据code获取成员信息

请求方式:GET(HTTPS)请求地址:https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token=ACCESS_TOKEN&code=CODE

参数说明:

参数说明

access_token是调用接口凭证

code是通过成员授权获取到的code,最大为512字节。每次成员授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期。

权限说明:

跳转的域名须完全匹配access_token对应应用的可信域名,否则会返回50001错误。

2.企业微信对接自建小程序应用(非第三方小程序)

调用接口 wx.qy.login() 获取企业微信派发的临时登录凭证(code)

https://qyapi.weixin.qq.com/cgi-bin/miniprogram/jscode2session?access_token=ACCESS_TOKEN&js_code=CODE&grant_type=authorization_code

企业微信允许多个企业关联同一个小程序,不过企业在开发过程中有需要特别注意的地方。

小程序在调用wx.qy.login之后,发送code到开发者服务器,开发者服务器使用code调用jscode2session接口,因为该小程序被多个企业关联,此时并不知道是哪个企业的用户在登录。此时,可使用任意一个企业中关联本小程序的应用的secret获取access_token,先调用jscode2session获得准确的corpid,再据此corpid重新进行一次登录流程即可。

上一篇 下一篇

猜你喜欢

热点阅读