美文网首页
钉钉接口开发入门

钉钉接口开发入门

作者: walker_ | 来源:发表于2019-03-05 13:51 被阅读0次

    需求背景:

    将一个A系统接入钉钉平台,供该企业内部员工使用等,实现移动化办公。
    主要需求:

    1. 可以使用钉钉通过扫描二维码的方式登录A系统
    2. 可以在A系统中共享钉钉的组织架构

    技术调研思路:

    第一阶段:在钉钉官网查看开发者文档

    接入场景主要有四种:

    第二阶段:选择可行方案

    根据需求,我们的使用场景为:仅供某个企业内的成员使用,其他企业无法使用该应用,所以优先选择企业内部开发方案。

    企业内部开发

    基于钉钉的开放能力,自主开发,供企业或组织内部使用,以满足办公场景中的个性化需求。该类应用无需钉钉团队审核。

    应用类型

    可以开发E应用、微应用两种类型的应用。

    E应用是一种全新的开发模式,让移动开发者通过简捷的前端语法写出Native级别的性能体验,并支持iOS、安卓、等多端部署。E应用暂不支持PC端部署,如果您的应用必须要在PC端上使用,可暂时使用微应用开发方式。
    微应用是指用H5方式开发的应用。

    E应用和微应用的对比:

    E应用 H5微应用
    加载性能 首次使用略慢,后续加载快 受到很多因素影响,优化不够好,容易慢
    使用体验 非常顺滑,接近 Native 容易卡顿
    开发环境搭建 提供 IDE,快速创建项目 成本高
    调试 提供 IDE,可以在电脑上调试大部分功能 在电脑上只能调 UI,涉及到钉钉的 jsapi,必须真机调试
    使用开源 UI 组件 目前不支持 支持
    使用 npm 包 支持 支持
    模块化组织代码 支持 E应用 特有的模块化 使用 vue, React 等框架可以轻松获得模块化支持
    灰度发布 钉钉提供 需要自己实现
    CDN E应用包默认在 CDN 需要开发者自己购买相关服务
    开发个人应用 支持 不支持
    应用离线化 支持 不支持

    由于E应用主要针对手机平台,ios 和 android,而且暂不支持在PC端使用。E应用比较坑人的地方是必须购买阿里云的服务器,而且基础版的价格是2万每年。(果断放弃!)

    比较并验证可行性之后,最终选择实现方案:钉钉微应用接入(企业内部开发)

    实现步骤

    创建应用

    1. 企业管理员登录钉钉管理后台,选择导航【工作台】,点击【自建应用】,开始创建自建应用。
    2. 填写基础信息
      填写应用基本信息。包括应用名称、logo和简介等。选择企业内部自主开发。
    3. 开发模式选择“开发应用”,应用类型选择“微应用”。
    4. 创建成功过后,会生成appKey和appSecret,可获取access_token进行开发

    开发应用

    钉钉开放平台提供丰富的API接口,以便开发者接入。

    钉钉开放平台提供了企业通讯录管理、文件管理、发送企业会话消息等功能,接口使用可以参考服务端开发文档。https://open-doc.dingtalk.com/microapp/serverapi2/gh60vz
    钉钉开放平台提供了微应用在钉钉客户端运行的专用容器,并提供一组可以调用钉钉的本地能力和业务能力的JSAPI接口,JSAPI接口用于微应用与钉钉功能之间的结合,接口使用可以参考客户端开发文档。https://open-doc.dingtalk.com/microapp/dev/welcome-to-lark

    扫码登录第三方网站

    使用钉钉客户端扫码并确认登录您的web系统,在您的系统内获得正在访问用户的钉钉身份,而用户无需输入账户密码。

    注: 此功能与企业自建应用/第三方企业应用无关,只能用扫码登录打开第三方网站,并且不是钉钉内的应用免登,此流程只能做到获取到用户身份(无手机号和企业相关信息)。

    获取appId及appSecret

    点击进入钉钉开发者平台 的页面,点击左侧菜单的【移动接入应用然后点击右上角的【创建扫码登录应用授权】,创建用于免登过程中验证身份的appId及appSecret,创建后即可看到appId和appSecret。

    构造扫码登录页面

    • 第一种方式是直接使用钉钉提供的扫码登录页面
      在企业Web系统里,用户点击使用钉钉扫描登录,第三方Web系统跳转到如下地址:
    https://oapi.dingtalk.com/connect/qrconnect?appid=APPID&response_type=code&scope=snsapi_login&state=STATE&redirect_uri=REDIRECT_URI
    

    url里的参数需要换成第三方Web系统对应的参数。在钉钉用户扫码登录并确认后,会302到你指定的redirect_uri,并向url参数中追加临时授权码code及state两个参数。

    同步组织架构

    调用钉钉提供的相关接口
    用户管理:https://open-doc.dingtalk.com/microapp/serverapi2/ege851
    部门管理:https://open-doc.dingtalk.com/microapp/serverapi2/dubakq
    角色管理:https://open-doc.dingtalk.com/microapp/serverapi2/dnu5l1

    相关文档

    开发前必读:https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.6c7e4a978KksTn&treeId=385&articleId=104980&docType=1

    企业内部开发常见问题:https://open-doc.dingtalk.com/microapp/bgb96b/mdg058

    开发企业内部应用:https://open-doc.dingtalk.com/microapp/bgb96b/gt5d6a

    钉钉微应用接入(企业内部开发):https://blog.csdn.net/Jason847/article/details/75007140/

    扫码登录第三方网站:https://open-doc.dingtalk.com/microapp/serverapi2/kymkv6

    JavaWeb开发
    初步实现网站应用钉钉扫码登录:https://blog.csdn.net/baofeidyz/article/details/59059379

    第三方网站通过 钉钉 扫描二维码登录/免密码登录,获取手机号码、邮箱等信息:https://www.jianshu.com/p/6a61043c79c9

    相关文章

      网友评论

          本文标题:钉钉接口开发入门

          本文链接:https://www.haomeiwen.com/subject/ubwnuqtx.html