如何在钉钉上开发自己的应用_快速上手——钉钉H5微应用开发接入

论坛 期权论坛     
选择匿名的用户   2021-5-23 11:46   699   0
<div class="._5ce-wx-style" style="font-size:16px;">
<div class="rich_media_content" id="js_content">
  <p><strong>创建钉钉H5应用</strong></p>
  顾名思义,钉钉H5应用,和微信WEB应用一样,本质都是一个有前端有后端的网站,由平台本身对网站基础功能进行扩充,提供专用接口满足开发者各式各样的和平台相关的需求。
  开发者平台:https://open-dev.dingtalk.com/
  先决条件:公司管理员和子管理员权限
  创建应用的流程很简单,开发者平台里新建一个应用,再为应用配置域名、IP白名单、接口权限等信息即可。
  <p><img alt="a0feb2caf6cd8ce1caed652a8aea1375.png" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-eac1e89e019cfbde10ecc84ce2b41aa3.png"></p>
  <p><img alt="c69870fd9068c5617c2d1ca3b8077d15.png" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-851aa9655ebe57581ef836e0ea725050.png"></p>
  <p><img alt="40405fffd2e2778792819a6f9e71248e.png" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-748df45b8bcfdf44990a3cf7116a717d.png"></p>
  <p><img alt="da6321696841ba61bf22f196dbd21936.png" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-a3ca2de83696dd0fb1e711292d29baea.png"></p>
  <p><img alt="848ca369c6b6ce8df71f9042dbcc7bab.png" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-7fe0fb3af67ed3e36ee813a6b6c49602.png"></p>
  <p><strong>关于免登</strong></p>
  免登的关键在于如何识别用户,微信网页也好,微信小程序也好,钉钉也好,都开放了获取用户信息的接口,在这基础上做免登的流程是:向平台获取用户信息 -&gt; 为用户登录。
  微信网页获取用户信息的流程是:用户同意授权(scope&#61;snsapi_userinfo时) -&gt; 获取code -&gt; 通过code换取网页授权access_token -&gt; 拉取用户信息。在获取code时,本质是由微信客户端刷新页面,并在URL中添加CODE参数;此外,获取access_token时,scope参数如果是snsapi_base,可以进行无感知获取用户openid,所以只有当需要获取详细信息时,才会用scope&#61;snsapi_userinfo来显示请求授权,其它场景中(不需要获取用户信息,或已经获取了对应openid的用户信息)只要使用snsapi_base即可。(官方文档地址:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html)
  钉钉流程与之类似,区别如下:
  <ul><li><p>微信通过URL传递code,钉钉通过JSAPI的dd.runtime.permission.requestAuthCode接口获取code;</p></li><li><p>不需要用户授权(真正意义上的无感知);</p></li><li><p>直接获取用户信息而不需要scope字段。</p></li></ul>
  此外,因为平台性质的差异,钉钉的用户字段包含了丰富的真实个人信息。
  
  <strong>签名校验</strong>
  <p>微信的wx.config参数配置,和钉钉H5的dd.config参数配置,不管是校验流程、签名参数的参数名和,还是校验算法都完全一样。</p>
  <p>在整个过程中(包括其它开发步骤里),有一个非常重要的原则需要格外留意:敏感参数绝对不能出现在前端(比如jsapi_ticket、access_token)。</p>
  <p>流程如下:</p>
  <ul><li><p>获取access_token</p></li><li><p>获取jsapi_ticket</p></li><li><p>计算签名(微信和钉钉均为jsapi_ticket, nonceStr, timeStamp, url)</p></li><li><p>将生成签名的参数nonceStr,timeStamp, url和最终生成的签名Signature传到前端,供config接口配置和注册权限;除了这几个参数,dd.config还需要用到agentId(即应用ID)、corpId(即公司ID),wx.config需要用到appId,本质上都是用来标识一个应用。</p></li></ul>
  <strong><strong>TOKEN的维护</strong></strong>
  <p>钉钉的Token有一个服务端缓存刷新机制,只要在失效前请求接口,access_token的过期时间会恢复为7200秒,借由这个机制,可以在后台跑一个定时任务,隔一段时间请求一下,就可以保证当前access_token一直有效。</p>
  <strong>开发、部署流程(与微信WEB应用一样):</strong>
  <ul><li><p>开发阶段</p>
    <ul><li><p>可以用自己熟悉的环境、熟悉的框架按普通的WEB开发过程进行前后端开发;</p></li><li><p>在需要使用功能的前端页面引入核心JS-SDK;</p></li><li><p>通过dd.config接口注入权限验证配置;</p></li><li><p>调用钉钉JSAPI接口时,需要发起者的IP存在于H5应用后台配置的<strong>服务器出口IP</strong>列表中。</p></li></ul></li><li><p>部署阶段</p>
    <ul><li><p>常规:把网站部署到服务器,配置DNS解析指向网站;</p></li><li><p>登入开发者平台,为应用配置<strong>应用首页地址</strong>。</p></li></ul></li></ul>
  <p><strong>关于H5 DEMO</strong></p>
  页面和微信WEB版完全一样,只有接口调用方式不一样。
  为了便于解析Token
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP