阿里云
阿里云多端小程序中小企业获客首选
发表主题 回复主题
  • 3475阅读
  • 1回复

[教程]企业应用接入的开发

级别: 小白
发帖
33
云币
40

钉钉开发文档
开发者文档中心:https://open-doc.dingtalk.com/?spm=a3140.7785475.0.0.vew07S

一、快速接入的选择:

1.企业微应用:钉钉企业微应用是企业在钉钉上建立的微应用,只提供给己企业内部使用。它帮助企业建立员工考勤、审批、员工通讯录管理以及与企业IT系统间的连接。使用企业微应用可以帮助企业快速、低成本的实现高质量的移动办公服务,实现员工沟通、员工协作、产品运营的移动化。我们有信心,帮助每一位企业微应用开发者,提升开发效率,降低开发成本与难度,确保企业微应用的稳定运行。

2.ISV微应用:ISVIndependent 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.jsdd.ready(function(){})中调用dd.runtime.permission.requestAuthCode()传入corpId获取code,之后我们通过回调函数处理我们拿到免登需要的code然后将codecorpid传给后台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

级别: 小白
发帖
41
云币
41
只看该作者 沙发  发表于: 2016-10-19
Re企业应用接入的开发
我们提供了一个服务,专门是集成从钉钉到企业各种应用的,而且实现了免登效果,有需要可以联系我
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
验证问题: ECS是阿里云提供的什么服务? 正确答案:云服务器
上一个 下一个
      ×
      全新阿里云开发者社区, 去探索开发者的新世界吧!
      一站式的体验,更多的精彩!
      通过下面领域大门,一起探索新的技术世界吧~ (点击图标进入)