文档章节

钉钉微应用开发笔记

浩浩浩浩浩浩荡
 浩浩浩浩浩浩荡
发布于 2017/02/09 17:31
字数 1282
阅读 2097
收藏 2
点赞 0
评论 0

这是我的第一份博客,用于记录自己正在开发的钉钉微应用项目,以便于以后工作和自己开发,希望自己以后能成为一流的开发人员。

开始   

项目前端基于JS,后端使用的nodejs。

这个项目让我收获的有:

  1. 熟悉JS使用
  2. 大致了解了koa框架的开发流程(希望以后能完整的开发一个koa项目供自己使用)
  3. 大致了解了jade模板引擎的使用方式,关于格式的缩进,引擎的逻辑并没有练习
  4. 钉钉的各种API调用  
  5. 使用nodemon自动启动nodejs(修改代码)

 

Koa

Koa是非常轻量的框架,能够直接使用各种中间件开始开发自己想要的后端,网上文档清晰,中文文档丰富,最初接触Node直接开始试用sails,框架庞大甚至臃肿,但是确实能省不少搭建的事,但是没有中文文档并且网上的资源极少,对于刚入门后端的我简直痛苦不堪,如果以后有人请教我node怎么学习,我一定推荐他现在敲一天node,然后再从express或者koa入门。

Jade模板引擎

相较于EJS其实我更喜欢用EJS,EJS更贴近HTML,格式更清晰,更容易理解,不过Jade也有他自己的好处,通过缩进就能调节格式,有自己独特的一套格式,如果熟练也能很快的开发,这次试用Jade的原因是因为钉钉官方给的demo用的是Jade,换成EJS后并不知道怎么把获取到的数据导入到EJS模板里的最终又换回来了,以后可以直接试试在<% var demo = _demo %>注入一个参数试试

nodemon

nodemon是一个后端的管理工具,能够在我修改代码后自动重启服务器,还有其他功能这次并没有使用,最初使用这类工具的目的是,在回家后云端的服务器会自动关闭,这类工具能够解决这个问题。(但是并没有解决...)

钉钉微应用开发

这次主要开发的任务是钉钉微应用的开发,项目的目的是为了让公司的业务结合在钉钉上,这样业务更流畅清晰,方便管理人员及时获取外勤人员的状态,任务的动向与错误汇报。

这是一个最初的设计样式,其实就是用官方的demo结合而成的,外勤人员进入应用可以看到自己待办的任务和已完成的任务,点击待办任务可以更改完成情况已进行任务反馈。

应用开发分为几个步奏:

  1. 需要登录钉钉管理员平台申请应用 (后台地址什么用还不知道~,首页地址及微应用的地址,PC版的需要单独开发,现在只用了移动版本的)
  2. 应用创建好后就可以进行开发了,开发需要自己的服务器,前端后钉钉的服务器进行几次交互,来验证应用以及调用更多的钉钉API,创建的流程如下图
    1. 首先在服务器端通过corpid(公司ID)和corpsecret(公司密码)获取到access_token。
    2. 再通过获取到的access_token获取到jsapi_ticket。
    3. 通过把获取到的nonceStr(用于生成签名的随机串'abcdefg'),timeStamp(时间戳),url(decodeURIComponent(this.href)),ticket(jsapi_ticket)通过算法获得标签signature。
    4. 将标签signature,nonceStr(用于生成签名的随机串'abcdefg'),timeStamp(时间戳),corpid(公司ID)发送给自己前端,用来调用jsApi:dd.config()
  3. 前端配置如下
    1. 直接对应填写相关数据即可
    2. jsApiList是必须填写的,你如果需要调用哪些API,就要先填写在这里,不然调用的时候会err
  4. dd.ready(),当钉钉api准备好后,会执行dd.ready,所以api应该写在这里面,不然可能会实现不了
  5. 免登:
    1. 在客户端通过获取到免登code,post到服务端
    2. 服务端获取到这个code,然后通过corpid(公司ID)和corpsecret(公司密码)获取到access_token

    3. 然后通过access_token和获取到的code通过/user/getuserinfo获取到用户信息

       

  6. 页面跳转:页面跳转好像文档里面没有找到,在官方给的demo里看到的
    1. dd.biz.util.openLink({
           url: url
          });
    2. 直接使用openLink便可以实现页面跳转,跳转到新的页面还是要进行dd.config({}),后台要重新生成新的标签传到新的页面

 

其他都是业务上的逻辑了,如果有基础上的更新以后可以继续更新,开发钉钉微应用是基于前后端一体的项目,对自己之前各种知识算是一个汇总

12/19:更新免登

12/25:页面跳转,后台框架更新成sails

 

 

 

git地址:https://github.com/yhkevin93/node/tree/master/钉钉项目

sails版:https://github.com/yhkevin93/node/tree/master/钉钉项目sails

© 著作权归作者所有

共有 人打赏支持
浩浩浩浩浩浩荡
粉丝 2
博文 3
码字总数 3341
作品 0
成都
程序员
OA集成钉钉开发——第三篇——添加微应用

在企业管理后天界面中,添加一个微应用,其中包括微应用的名称,图标,对于该企业的组织机构的开发权限,这些都是阿里的权限控制,和我们OA开发无半毛钱关系。其中最重要的就是设置该微应用的...

小手冰凉丶 ⋅ 2016/12/21 ⋅ 0

OA集成钉钉开发——第四篇——微应用开发

前一篇我们说到从钉钉中登录微应用,因为我们是从微应用的中的入口进入的,那么我们项目中就不需要设置登录,注册,我们通过钉钉就可以拿到你的唯一标识,这个标识在我们的组织机构中,也就是...

小手冰凉丶 ⋅ 2016/12/21 ⋅ 0

AWCP 1.1 发布,集成钉钉 SDK 全配置的开发平台

AWCP 1.1 已发布, AWCP 是一个快速开发平台,完全配置化实施的开发平台,目前以及集成了jflow工作流引擎,基于模板引擎实施的表单定制,可快速配置企业应用,目前已经完成钉钉手机端,钉钉P...

曹勇 ⋅ 2017/11/06 ⋅ 3

AWCP 1.2 发布,集成钉钉 SDK 全配置的开发平台

AWCP 1.1 已发布, AWCP 是一个快速开发平台,完全配置化实施的开发平台,目前以及集成了jflow工作流引擎,基于模板引擎实施的表单定制,可快速配置企业应用,目前已经完成钉钉手机端,钉钉P...

曹勇 ⋅ 2017/11/23 ⋅ 1

如何将钉钉集成到FineReport插件中

报表服务器 安装钉钉管理插件后,打开报表管理平台,管理系统下会增加钉钉管理节点,钉钉相关的配置管理都将会放在这个节点中去配置: 同时,设置定时任务的最后一步输出设置中,会增加推送钉...

雄霸天下啦 ⋅ 2017/03/14 ⋅ 0

钉钉微应用开发:任务派发跟踪

需要开发一个钉钉上的微应用,大致需求是: 用户系统 读取现有钉钉企业用户数据,用户权限可分为: 管理员:超级用户,可创建、修改任务和任务流程,可管理用户 观察员(领导):可查看任意任...

钟峰 ⋅ 05/24 ⋅ 0

SaaS市场中最重要的一支,移动办公迎来新的重量玩家——阿里云办公

SaaS市场中最重要的一支,移动办公迎来新的重量玩家——阿里云办公。 时下“钉钉”已成为众多公司移动办公的首要入口。为进一步在移动办公领域赋能中小企业通过云计算技术解决企业管理、业务...

阿里云官方博客 ⋅ 2016/05/13 ⋅ 4

OA集成钉钉开发——第六篇——消息推送

前面我们说到微应用中的免登陆,那么OA的开发的用户信息就可以拿到了。 接下来我们要说的就是OA中的一个重要的功能就是消息的推送,这个功能是OA必不可少的一个可能,集成钉钉的一个很大的优...

小手冰凉丶 ⋅ 2016/12/27 ⋅ 0

OA集成钉钉开发——第五篇——微应用开发

CorpID是企业在钉钉中的标识,每个企业拥有一个唯一的CorpID; CorpSecret是企业每个应用的凭证密钥。 CorpID及CorpSecret可以在钉钉为企业提供的管理后台中找到,由钉钉自动分配。 根据Cor...

小手冰凉丶 ⋅ 2016/12/26 ⋅ 0

微凉/ThinkWechat

#ThinkWechat 为thinkphp提供的微信SDK,集成opensns管理后台,wechat-php-sdk, WEUI 实现快速开发微信企业号,微信服务号,钉钉办公套件,内置二维码生成,邮件短信微信消息发送,也许是thi...

微凉 ⋅ 2017/02/13 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

从 Confluence 5.3 及其早期版本中恢复空间

如果你需要从 Confluence 5.3 及其早期版本中的导出文件恢复到晚于 Confluence 5.3 的 Confluence 中的话。你可以使用临时的 Confluence 空间安装,然后将这个 Confluence 安装实例升级到你现...

honeymose ⋅ 14分钟前 ⋅ 0

用ZBLOG2.3博客写读书笔记网站能创造今日头条的辉煌吗?

最近两年,著名的自媒体网站今日头条可以说是火得一塌糊涂,虽然从目前来看也遇到了一点瓶颈,毕竟发展到了一定的规模,继续增长就更加难了,但如今的今日头条规模和流量已经非常大了。 我们...

原创小博客 ⋅ 今天 ⋅ 0

MyBatis四大核心概念

本文讲解 MyBatis 四大核心概念(SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、Mapper)。 MyBatis 作为互联网数据库映射工具界的“上古神器”,训有四大“神兽”,谓之:Sql...

waylau ⋅ 今天 ⋅ 0

以太坊java开发包web3j简介

web3j(org.web3j)是Java版本的以太坊JSON RPC接口协议封装实现,如果需要将你的Java应用或安卓应用接入以太坊,或者希望用java开发一个钱包应用,那么用web3j就对了。 web3j的功能相当完整...

汇智网教程 ⋅ 今天 ⋅ 0

2个线程交替打印100以内的数字

重点提示: 线程的本质上只是一个壳子,真正的逻辑其实在“竞态条件”中。 举个例子,比如本题中的打印,那么在竞态条件中,我只需要一个方法即可; 假如我的需求是2个线程,一个+1,一个-1,...

Germmy ⋅ 今天 ⋅ 0

Springboot2 之 Spring Data Redis 实现消息队列——发布/订阅模式

一般来说,消息队列有两种场景,一种是发布者订阅者模式,一种是生产者消费者模式,这里利用redis消息“发布/订阅”来简单实现订阅者模式。 实现之前先过过 redis 发布订阅的一些基础概念和操...

Simonton ⋅ 今天 ⋅ 0

error:Could not find gradle

一.更新Android Studio后打开Project,报如下错误: Error: Could not find com.android.tools.build:gradle:2.2.1. Searched in the following locations: file:/D:/software/android/andro......

Yao--靠自己 ⋅ 昨天 ⋅ 0

Spring boot 项目打包及引入本地jar包

Spring Boot 项目打包以及引入本地Jar包 [TOC] 上篇文章提到 Maven 项目添加本地jar包的三种方式 ,本篇文章记录下在实际项目中的应用。 spring boot 打包方式 我们知道,传统应用可以将程序...

Os_yxguang ⋅ 昨天 ⋅ 0

常见数据结构(二)-树(二叉树,红黑树,B树)

本文介绍数据结构中几种常见的树:二分查找树,2-3树,红黑树,B树 写在前面 本文所有图片均截图自coursera上普林斯顿的课程《Algorithms, Part I》中的Slides 相关命题的证明可参考《算法(第...

浮躁的码农 ⋅ 昨天 ⋅ 0

android -------- 混淆打包报错 (warning - InnerClass ...)

最近做Android混淆打包遇到一些问题,Android Sdutio 3.1 版本打包的 错误如下: Android studio warning - InnerClass annotations are missing corresponding EnclosingMember annotation......

切切歆语 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部