CorpID是企业在钉钉中的标识,每个企业拥有一个唯一的CorpID;
CorpSecret是企业每个应用的凭证密钥。
CorpID及CorpSecret可以在钉钉为企业提供的管理后台中找到,由钉钉自动分配。
根据CorpID和CorpSecret获取accessToken。
POST请求请在HTTP Header中设置 Content-Type:application/json,否则接口调用失败。
java 后台请求:
ServiceFactory serviceFactory = ServiceFactory.getInstance();
CorpConnectionService corpConnectionService = serviceFactory.getOpenService(CorpConnectionService.class);
accToken = corpConnectionService.getCorpToken(Env.CORP_ID, Env.CORP_SECRET);
因为access_token和jsapi_ticket的过期时间都是7200秒,所以可以把accssToken写入文件,可以避免平凡的从阿里的服务中请求。
请求到了access_token 之后,
JsapiService jsapiService = serviceFactory.getOpenService(JsapiService.class);
JsapiTicket JsapiTicket = jsapiService.getJsapiTicket(accToken, "jsapi");
jsTicket = JsapiTicket.getTicket();
可以拿到ticket,通过ticket( 两小时过期),在后端通过sign(ticket, nonceStr, timeStamp, url)计算前端校验需要使用的签名信息。
- 将:‘url’,‘nonceStr’,‘agentId’,‘timeStamp’,‘corpId’,‘signature’传递到前端页面,在前端HTML5页面使用jsapi提供的dd.config(PC客户端使用DingTalkPC.config)接口进行签名校验。
- 在页面引入jsapi:https://g.alicdn.com/ilw/ding/0.9.2/scripts/dingtalk.js
- 使用钉钉js-api提供的获取免登授权码接口获取CODE
- 通过CODE换取身份