钉钉开发文档
开发者文档中心:https://open-doc.dingtalk.com/?spm=a3140.7785475.0.0.vew07S
一、快速接入的选择:
1.
企业微应用:钉钉企业微应用是企业在钉钉上建立的微应用,只提供给自己企业内部使用。它帮助企业建立员工考勤、审批、员工通讯录管理以及与企业
IT
系统间的连接。使用企业微应用可以帮助企业快速、低成本的实现高质量的移动办公服务,实现员工沟通、员工协作、产品运营的移动化。我们有信心,帮助每一位企业微应用开发者,提升开发效率,降低开发成本与难度,确保企业微应用的稳定运行。
2.ISV
微应用:
ISV
是
Independent Software Vendors
的英文缩写,意为“独立软件开发商”,特指专门从事软件的开发、生产、销售和服务的企业。
钉钉ISV
是独立于企业、钉钉之外的第三方软件开发商,愿意和钉钉一起共建各个行业的移动办公服务,
ISV
开发的微应用通过审核后会在钉钉应用中心展示,企业管理员可以在钉钉应用中心添加
ISV
微应用到自己企业的工作面板供企业所有员工使用。
ISV
开发者体系比企业应用开发者体系复杂一些,
ISV
必须获得企业的授权才能获取企业用户的通讯录等信息并为企业的用户提供服务。
因为我们开发的是企业内部应用,给自己员工使用的,属于企业微应用。根据描述,选择企业接入。
二、企业接入:
企业接入文档地址:
https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.839sc4&treeId=174&articleId=104937&docType=1
按照步骤,先注册企业账号,再创建微应用,这样我们才能拿到开发时需要的参数
三、开发微应用:
由于我们做的是手机和后台的开发,所以我们只需要关注
客户端开发文档
和
服务端开发文档
就好了。
服务端开发文档地址:
https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.7SVwPP&treeId=172&articleId=104981&docType=1
我们需要先看一下服务端的开发文档,在服务端中,我们可以找到java
版本的
demo
地址。
java
版本的
github
地址 https://github.com/ddtalk/HarleyCorp
这个工程是用IntelliJ IDEA
做的开发,而我用的是
eclipse
做的开发,我们可以在
eclipse
中创建
web
工程,把相应的文件都放进去。这个
demo
有一个地方显示错误,
UserHelper.java
中有一个小错误,根据提示进行修改就好了。(在这里你可以下载一个
eclipse
反编译插件,可以详细了解一下钉钉的
jar
的源码)。
然后我们根据这个Demo
的文档,把相应的参数都补全。这样,我们可以自己写一个
main
方法,把
demo.java
里边的需要代码复制过来就可以了,比如发消息,然后运行一下,手机就会接收到钉钉的提示消息。
在这个demo.java
文件中已经写好了服务端开发文档的一些接口以及例子,我们根据接口定义的参数,直接写入测试就好行了。
四、
免登。
免登接口是关于用户无需输入用户名+密码就可以实现登录,通过权限认证后获取用户身份的接口
免登的相关地址
https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.v7vRht&treeId=172&articleId=104969&docType=1
因为我们是给手机端做的免登所以选择使用JS-API
开发企业应用免登
(
移动端
)
。
在java
版本的
demo
中有相关免登的接口。
1.
首先
index.jsp
中通过
AuthHelper.java
文件中的
getConfig
方法把相关参数传给前台
_config
。在
demo.js
中对调用
dd.config()
处理
_config
参数。
2.
在
index.js
的
dd.ready(function(){})
中调用
dd.runtime.permission.requestAuthCode()
传入
corpId
获取
code
,之后我们通过回调函数处理我们拿到免登需要的
code
然后将
code
和
corpid
传给后台
UserInfoServlet
3.
在
UserInfoServlet.java
中,我们调用
UserHelper.getUser
方法就能够获取
user
的相关信息,然后根据这个
user
的相关属性去做自己的权限控制就可以了。
五、
遇到过的问题。
我把demo
中的
servlet
改成了相关的
controller
,在做免登时用
java
版本的
Demo
移动端一直报
message:"
权限校验失败
"
、
errorcode:3
、错误码
:52013
等相关的错误,这个问题当时困扰我的时间比较长。
1.
后来查到的原因是在
index.jsp
中通过
AuthHelper.java
文件中的调用
getConfig
方法,
urlString
获取的值是
http://xxxx/xxxx.jsp
,而我们在创建微应用时写的地址是
http://xxxx/xxxx
。这就造成了
urlString
以及根据这个
urlString
生成的相关参数与钉钉后台的验证不一致的结果,移动端就报了相关错误。
我后台把这个生成参数request.getRequestURL().toString();
改成了静态的
http://xxxx/xxxx
。
2.
还有一个就是jsapi_ticket
过期问题,也造成了以上的错误,我当时为了调试方便,就把
AuthHelper.java
中的
cacheTime
设置为了
0(
调试完成后再改回去
)
。
通过以上两步解决了我在做免登时遇到的问题。
我们也可以根据以下三个网址里边的内容去定位自己遇到的问题
服务端调试工具:https://debug.dingtalk.com/?spm=a219a.7629140.0.0.3usWsy
客户端调试工具:https://wsdebug.dingtalk.com/?spm=a219a.7629140.0.0.vzBaXq
常见问题:https://bbs.aliyun.com/read/266079.html?spm=5176.bbsl276.0.0.BlZHbS
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。