美文网首页钉钉微应用
钉钉微应用踩坑记录

钉钉微应用踩坑记录

作者: 墨天一色 | 来源:发表于2019-03-21 10:53 被阅读0次

一、要解决的问题:

      钉钉微应用开发,应对未来可能的PC端使用场景:PC访问网页,工作台登陆后,通过钉钉服务端接口完成自身业务。

二、开发前准备:

       根据官方文档,钉钉微应用PC端开发和移动端开发已经统一,方便我们统一开发,两套使用。

       前端调用钉钉API可在页面引入对应js文件:

<script scr="//g.alicdn.com/dingding/dingtalk-jsapi/2.0.57/dingtalk.open.js"></script>

       为什么引入鉴权(dd.config)?——钉钉业务相关JSAPI必须鉴权,手机原生功能可不用鉴权,在dd.ready内执行即可。目前支持的JSAPI功能展示可参见https://wsdebug.dingtalk.com/

        鉴权原理:

1.在你的Web服务器端调用api,传入CorpId和CorpSecret,获取accessToken,即访问令牌。

2.在服务器端调用api,传入accessToken,获取JsApiTicket,即JsApi的访问许可(门票)。

3.按照既定规则,在后台由JsApiTicket、NonceStr、Timestamp、本页面Url生成字符串,计算SHA1消息摘要,即签名Signature。

4.将AgentId、CorpId、Timestamp、NonceStr、Signature等参数传递到前台,在前台调用api,得到authCode,即授权码。

5.根据授权码,在前台或后台调用api,获得userId,进而再根据userId,调用api获取用户详细信息。

补充几点:

1.accessToken通过下图的接口获取,钉钉有形形色色的token。

根据应用id和应用密码得到的访问令牌:

用上述token获取的sns访问令牌:

扫码免登token:(钉钉扫码门禁)

2.    nonceStr自定义,时间戳timestamp为服务器时间(可以理解为sign()方法调用当时的系统时间与1970年1月1日差值的秒数,为长整型,前后台应一致)。

3.   sign方法,在https://debug.dingtalk.com/可以把参数传过去,验证方法获得的sign是不是正确。在调试的时候报52011错误,一度发现不了问题,后来用此法排除了是不是sign方法写错的怀疑。

方法论:

后端代码:

前端代码:

dd.error方法在调试的时候很有用,我按这个步骤完成后,访问目标页面一直提示52011,查看官方文档和网上说明,基本是按照下边截图筛查:

按此步骤筛查无误,后来又用https://debug.dingtalk.com/来确定了jsapi_ticket和sign值均正确,且没有别的服务同时获取jsapi_ticket,前前后后代码看了个遍,也没找到问题所在。后来在一个帖子的某一个人的回复里边看到一句话:

我试了试,改了这个地方:

右图是官方实例,估摸是哪个配置代码程序员眼花了,没完全按驼峰写。要不是找到这帖子一楼一楼看,生找bug谁能发现…这也是企业自建服务窗微应用独有的问题,e应用貌似没问题。

至此问题解决。

相关文章

  • 钉钉微应用踩坑记录

    一、要解决的问题: 钉钉微应用开发,应对未来可能的PC端使用场景:PC访问网页,工作台登陆后,通过钉钉服务端接口...

  • 钉钉ISV JSAPI开发总结

    近期开发了钉钉版微应用,将自己踩过的坑总结如下 : 坑1.dd.biz.navigation.setLeft iO...

  • 写在E应用之前的钉钉H5微应用开发流程

    近很长一段时间,都在研究钉钉微应用的开发,从weex,h5,到现在的E应用,爬过不短的路,踩过不少的坑。6月份的时...

  • 关于钉钉集成的踩坑记录

    开发准备 因为近期有一个项目要集成到钉钉上面去,所有做了一下钉钉对接方案的验证,总体来说官方的文档写得挺简单的,但...

  • 钉钉开放平台 AccessToken 改动

    踩坑记录2019年1月7日,铭记历史,总结反思,祝有缘人,在开发的路上一帆风顺。 错误:钉钉 没有调用该接口的权...

  • 钉钉小程序踩坑总结

    最近用uniapp写了一个钉钉小程序项目,由于刚兼容钉钉小程序不久,安卓和ios体验上差距还是蛮大的,包括本地测试...

  • 钉钉H5微应用JSAPI鉴权踩坑点

    开发H5钉钉微应用,JSAPI鉴权提示签名校验失败,有两个点需要注意: 1. 钉钉开发文档中返回的signatur...

  • 无标题文章

    慧智联微信钉钉知识库 微信-微信相框 钉钉-tower任务二次开发 各种应用的结合 markdown学习 htt...

  • 微应用使用

    1、登陆手机版钉钉,点击微应用 2、点击申请,申请完毕,加入微应用 3,登陆钉钉管理后台https://oa.di...

  • 微信小程序 tips

    不要问我为啥一会儿iOS、一会儿RN、一会儿小程序,我就是一颗螺丝钉,哪里需要往哪里钉?。 踩坑tips记录:1、...

网友评论

    本文标题:钉钉微应用踩坑记录

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