vue项目对接钉钉企业内部H5微应用

简介: 公司项目需要接入钉钉 🐶,所以做了钉钉的企业内部应用对接。

公司项目需要接入钉钉 🐶,所以做了钉钉的企业内部应用对接。

应用场景
将之前已经有的 H5 应用接入钉钉内,无需输入账号密码便可直接登录。

准备工作

  • 1.注册钉钉(废话)
  • 2.负责开发的相关人员申请成为钉钉子管理员(找公司内的超管申请)

    • 注意需要管理员赋予必要的权限,例如:

      • 开发应用的数据权限
      • 开发者权限
      • 工作台管理
      • 应用中心管理
  • 3.登录钉钉开发者后台

    只有管理员和子管理员可登录开发者后台
  • 4.在应用开发页面,选择企业内部开发 > H5微应用,然后单击创建应用

dd-create-h5.png

  • 5.填写应用的基本信息,然后单击确定创建
  • 6.在应用信息页面,单击开发管理,然后单击修改

    • 这里注意『开发模式』的选择。如果已有可接入的H5应用时,文档提示说选择『快捷链接』的方式,但是如果后端需要请求钉钉的话就要配置服务器出口IP(白名单)了,所以还是得选择『开发应用』,不然无法配置后端请求的白名单(坑)

    dd-dev-manage.png

  • 7.单击凭证与基础信息获取应用的AppKey和AppSecret
  • 8.如果需要获取通讯录权限,就要添加合适的接口权限

dd-api-auth.png

开发流程

项目修改

项目情况

技术栈

  • vue 2.6.11
  • vue-cli 2.9.6

接入步骤

依赖安装

更目录执行以下命令

npm install dingtalk-jsapi --save
获取微应用免登授权码方法封装

项目的 utils 目录下(当然也可以选择 common 组件目录)新建文件dd.js


import * as dd from 'dingtalk-jsapi'

export function getCode(callback) {
  let corpId = 'your corpId'
  if (dd.env.platform !== 'notInDingTalk') {
    dd.ready(() => {
      //使用SDK 获取免登授权码
      dd.runtime.permission.requestAuthCode({
        corpId: corpId,
        onSuccess: info => {
          // 根据钉钉提供的api 获得code后,再次调用这个callback方法
          // 由于是钉钉获取code是异步操作,不知道什么时候执行完毕
          // callback 函数会等他执行完毕后在自己调用自己
          callback(info.code)
        },
        onFail: err => {
          alert('fail')
          alert(JSON.stringify(err))
        }
      })
    })
  }
}

corpId 可到后台 基本信息->开发信息(旧版)->企业自用账号信息 下查看。

应用入口页面修改

import { getCode } from '@/utils/dd'

export default {
  data() {
    return { }
  },
  methods: {},
  created() {
    getCode(code => {
      // 登录处理
    })
  }
}

对接感受

从 H5 微应用的对接来看没有特别复杂的配置,对接起来很流畅,基本没有卡壳的地方

  • 官方文档有一处写的不够准确,已有H5应用时引导用户选择快捷链接开发模式,但是这种模式下如果后端需要请求钉钉接口的话就找不到配置IP白名单的地方了,比较尴尬。
  • 权限管理的地方,涉及到通讯录权限时,基本信息与成员手机号、邮箱都是分开的权限需要手动添加,不然是获取不到相应信息的
  • 参与测试人员需要在应用的版本管理与发布tab页单独设置可使用范围才能使相关开发人员在钉钉客户端上看见入口

参考资料

相关文章
|
2月前
|
机器人 API
Eolink神技之三、钉钉API对接
Eolink神技之三、钉钉API对接
60 0
|
3月前
|
搜索推荐
钉钉:不可取代的企业通讯与管理工具
钉钉:不可取代的企业通讯与管理工具
|
3月前
|
安全 前端开发 iOS开发
钉钉里微应用ios 底部安全区域的颜色怎么修改?
钉钉里微应用ios 底部安全区域的颜色怎么修改?
58 5
|
1月前
|
移动开发
在使用钉钉H5微应用时,通过消息通知链接跳转到特定页面可能会出现一些问题
【2月更文挑战第12天】在使用钉钉H5微应用时,通过消息通知链接跳转到特定页面可能会出现一些问题
31 3
|
2月前
|
移动开发
在使用钉钉H5微应用时,通过消息通知链接跳转到特定页面可能会出现一些问题
在使用钉钉H5微应用时,通过消息通知链接跳转到特定页面可能会出现一些问题
48 2
|
3月前
|
小程序 JavaScript
钉钉小程序嵌入的vue页面怎么与钉钉小程序通信
在vue中使用官方提供的<script>标签无法引入https://appx/web-view.min.js,求大佬指教
|
3月前
|
SQL 安全 BI
钉钉连接平台集成自动化让企业降本增效
钉钉连接平台(iPaas)具备强大的产品能力、丰富的解决方案、客户案例和权威认证
|
4月前
|
移动开发 API
钉钉H5微应用怎么调取摄像头?
钉钉H5微应用怎么调取摄像头?
154 0
|
1天前
|
JavaScript 前端开发
【vue】iview如何把input输入框和点击输入框之后的边框去掉
【vue】iview如何把input输入框和点击输入框之后的边框去掉
7 0
|
1天前
|
JavaScript
【vue实战】父子组件互相传值
【vue实战】父子组件互相传值
6 1