关于钉钉集成的踩坑记录

开发准备

因为近期有一个项目要集成到钉钉上面去,所有做了一下钉钉对接方案的验证,总体来说官方的文档写得挺简单的,但是有些地方有些小坑,话不多说,直接开干。(钉钉官方文档:https://open-doc.dingtalk.com/microapp/dev)
在钉钉上的应用主要有三种:E应用微应用快捷链接,下面是他们的区别,快捷链接就是直接链接到你的系统或是网页,E应用需要下载官方的开发软件,该软件和微信小程序的开发软件类似,语法也类似。由于老大的要求,本次主要使用vue开发H5微应用

E应用微应用对比

关于钉钉集成的踩坑记录_第1张图片
E应用和微应用对比

E应用官方开发软件

关于钉钉集成的踩坑记录_第2张图片
E应用官方软件

接下来我们正式开始,首先在钉钉开放平台>应用开发 创建一个微应用

关于钉钉集成的踩坑记录_第3张图片
创建微应用

输入基本信息进入下一步,这里要注意服务器出口IP,就是调用服务端api的白名单ip,没有在这儿加上调用服务端api时就会没有权限,除了开发模式和开发应用类型,其他的后面都是可以改的

关于钉钉集成的踩坑记录_第4张图片
创建微应用

这个时候我们的微应用就创建成功了,我们可以进入微应用管理里拿到应用的基本信息

关于钉钉集成的踩坑记录_第5张图片
微应用详情

demo代码

到这里我们的准备工作就已经做完了,正式进入写代码阶段,首先就是进入一个微应用就是免登拿到用户信息的问题,首先来看看下面的官方文档

关于钉钉集成的踩坑记录_第6张图片
获取免登授权码

官方文档说的是获取免登授权码时,不需要进行鉴权,然而实测之后,==必须要鉴权之后才能进入dd.ready==,下面就直接上前端demo代码(其实代码都很简单,注意一些小坑就可以了,后端代码就不上了,一些简单的服务端api的调用也没有做具体的介绍,详情见官方文档微应用的免登流程)






dd.config就是用来鉴权用的,鉴权所需要的参数agentId和corpId就是微应用里面的信息,签名信息需要后台调用服务端api获取,这里需要注意的是调用服务端api时所传的url,这里的==url是前端鉴权代码所在的页面的url==,前端可以通过location.href获取传给后端,或者定好之后后台直接写,不过直接写的话就会涉及到后面上线时要地址变化时就要更改,否者鉴权就不能通过。

关于钉钉集成的踩坑记录_第7张图片
后端获取签名信息

授权通过之后,就可以调用前端jsapi获取到临时授权码,而后端就可以通过临时授权码code和access_token拿到用户的usrid,再通过access_token和userid就可以拿到用户具体的详细数据,不过要注意,有些数据是需要通过授权才能拿到的,具体授权位置和原来的位置发生了变化,现在权限管理是在应用管理里面


关于钉钉集成的踩坑记录_第8张图片
微应用权限管理

总结

其他的像是消息推送和登录第三方网站就和上面类似了,主要需要注意下面几点

  1. 鉴权的url为前端的url,鉴权通过后才能进入dd.ready获取到临时授权码。
  2. 调用前端jsapi时只能在钉钉上测试,网页上不行。
  3. 服务端api若是调用不成功,要注意服务端ip地址是不是在白名单中,本地服务器测试的话,重启路由器后ip是会变的(这个坑踩得深)。
  4. 钉钉登录第三方网站时有两种方式:扫码登录、账号密码登录,但是它提供的账号密码登录是移动端的页面,不适合pc端,参考了一下其他的网站,例如:阿里云,pc端都只用了扫码登陆。
  5. 如果服务端api调用正确,返回‘没有权限’,那就去微应用管理看看权限哪些没给到。

PS:初次发文,可能会有些错误和不足,欢迎大家指出

你可能感兴趣的:(关于钉钉集成的踩坑记录)