关于钉钉 钉钉是阿里推出的企业移动OA平台,本身提供了丰富的通用应用,同时其强大的后台API接入能力让企业接入自主开发的应用成为可能,可以让开发者实现几乎任何需要的功能. 近期因为工作需要研究了一下钉钉的接入,发现其接入文档.SDK都是基于java编写的,而我们的企业网站使用Asp.Net MVC(C#)开发,所以接入只能从头自己做SDK. 接入主要包括免登.获取数据.修改数据等接口. 免登流程 首先需要理解一下钉钉的免登流程,借用官方文档的图片: 是不是很熟悉?是的,基本是按照OAUTH的原理…
以第三方企业微应用为例 在第三方企业微应用应用时,比较底层的需求,就是应用需要获取客户企业的通讯录,即部门/员工的数据.本人整理以下几个关键数据,供大家开发参考. 新建第三方微应用时,能拿到这些初始数据 [1-1] isv.encodingAesKey.手动配置.微应用设置界面拿到,用于解密.初始化应用.验证URL回调. [1-2] isv.suiteKey.手动配置.微应用设置界面拿到,用于解密.初始化应用.验证URL回调. [1-3] isv.token.手动配置.应用设置界面拿到,用于解密…
企业内部H5微应用开发 分为 服务端API和前端API的开发,主要涉及到进入应用免登流程和JSAPI鉴权. JSAPI鉴权开发步骤: 1.创建H5微应用 登入钉钉开放平台(https://open-dev.dingtalk.com/#/index),进入“应用开发”->企业内部开发H5微应用->创建应用,并填写基本信息和配置开发信息 2.JSAPI鉴权服务端API的开发: (1)通过appKey 和 appSecret 获取调用接口凭证AccessToken(https://oapi.ding…
前言 现在软件开发不仅要面对前端碎片化,还要面对后端碎片化.针对前端碎片化,CabloyJS提供了pc=mobile+pad的跨端自适应方案,参见:自适应布局:pc = mobile + pad 在这里,咱们重点要解决的是后端碎片化.比如要开发一个业务系统,既需要与微信.企业微信整合,又需要与钉钉整合,该如何设计整个架构呢? 其实,不论是微信.企业微信,还是钉钉,面向实际业务层面的API都不复杂,复杂的是各自独立的账号体系如何与业务系统打通的问题.当账号接口对接完成,后续的业务开发就很顺畅了 C…
前言 现在软件开发不仅要面对前端碎片化,还要面对后端碎片化.针对前端碎片化,CabloyJS提供了pc=mobile+pad的跨端自适应方案,参见:自适应布局:pc = mobile + pad 在这里,咱们重点要解决的是后端碎片化.比如要开发一个业务系统,既需要与微信.企业微信整合,又需要与钉钉整合,该如何设计整个架构呢? 其实,不论是微信.企业微信,还是钉钉,面向实际业务层面的API都不复杂,复杂的是各自独立的账号体系如何与业务系统打通的问题.当账号接口对接完成,后续的业务开发就很顺畅了 C…
前言 现在软件开发不仅要面对前端碎片化,还要面对后端碎片化.针对前端碎片化,CabloyJS提供了pc=mobile+pad的跨端自适应方案,参见:自适应布局:pc = mobile + pad 在这里,咱们重点要解决的是后端碎片化.比如要开发一个业务系统,既需要与微信.企业微信整合,又需要与钉钉整合,该如何设计整个架构呢? 其实,不论是微信.企业微信,还是钉钉,面向实际业务层面的API都不复杂,复杂的是各自独立的账号体系如何与业务系统打通的问题.当账号接口对接完成,后续的业务开发就很顺畅了 C…
钉钉是阿里巴巴专为中小企业和团队打造的沟通.协同的多端平台,钉钉开放平台旨在为企业提供更为丰富的办公协同解决方案.通过钉钉开放平台,企业或第三方合作伙伴可以帮助企业快速.低成本的实现高质量的移动微应用,实现生产.管理.协作.运营的移动化.官网的列子往往都是java,php和nodejs的,下面我用c#来实现一个简单的列子,来说明如何与钉钉进行交互: 1 创建一个网站: 其中官网有如何进行账号注册等开发的准备工作,这里不阐述.假设你已经成功申请了企业账号,然后获取了CorpId和CorpSecre…
C#如何在钉钉开发平台中创建部门   钉钉是阿里巴巴专为中小企业和团队打造的沟通.协同的多端平台,钉钉开放平台旨在为企业提供更为丰富的办公协同解决方案.通过钉钉开放平台,企业或第三方合作伙伴可以帮助企业快速.低成本的实现高质量的移动微应用,实现生产.管理.协作.运营的移动化.官网的列子往往都是java,php和nodejs的,下面我用c#来实现一个简单的列子,来说明如何与钉钉进行交互: 1 创建一个网站: 其中官网有如何进行账号注册等开发的准备工作,这里不阐述.假设你已经成功申请了企业账号,然后…
首先用自己的钉钉账号注册一个企业: https://oa.dingtalk.com/index.htm 一.获取应用APPKEY及APPSECRET方法: 1.登录钉钉开放平台创建应用: https://open-dev.dingtalk.com 2.设置外网IP地址: 3.打开创建应用获取APPKEY及APPSECRET 4.获取APPKEY及APPSECRET: 5.获取班老版开发CorpId和SSOSecret 二.获取审批process_code 1.登录钉钉管理后台: https://…
阿里钉钉在商业领域的规模越来越大,基于钉钉办公的企业越来越多,将一个企业内现有用到的工具(如钉钉)能够更融入到他们的工作中,提高工作效率,那便需要开发者不断的学习.应用了,同时,个人也有一个预感,未来围绕钉钉作为企业办公的必备利器,将会减少我们在软件开发过程中一些基础设施的建设,如部门.用户等这些的管理,更加偏重业务的价值了.   一.接入钉钉初衷 钉钉内部的一些功能越来越丰富,如果结合到现有业务功能中,可以减少部分功能的再次开发,而是直接利用钉钉完成,比如,新上线的一个审批签名功能,如果能够引…
在前段时间,接触一个很喜欢钉钉并且已在内部场景广泛使用钉钉进行工厂内部管理的客户,如钉钉考勤.日常审批.钉钉投影.钉钉门禁等等方面,才体会到原来钉钉已经已经在企业上可以用的很广泛的,因此回过头来学习研究下钉钉的一些业务范围和其SDK的开发工作.钉钉官方的SDK提供了很多方面的封装,不过相对于Java,.NET版本的一直在变化当中,之前研究钉钉C#版本SDK的时候发现一些问题反映给钉钉开发人员,基本上得不到好的解决和回应,而在使用官方的SDK的时候,有些数据竟然无法正常获取(如角色的信息等),而且…
最近有个需求,在钉钉内,点击微应用,获取用户身份,根据获取到的用户身份去企业内部的用户中心做校验,校验通过,相关子系统直接登陆; 就是在获取这个用户身份的时候,网上的资料七零八落的,找的人烦躁的很,所以自己记录一下; 实现这个要求,有好几种方式,使用ISV方式相对来说比较简单一点,获取的到的信息虽然没有其他方式那么全,但是也包含了百分之七八十的信息,少了角色信息之类的; 效果:(demo的GIT地址在文末) 说说步骤: 1.去OA 控制台创建一个微应用: https://oa.dingtalk.…
打开钉钉开发者文档官网,注册一个账号(个人也可以注册),登陆账号之后在开发账号管理那里可以看到corpid(企业ID),corpsecret需要生成…
一.项目背景 随着信息化社会的高速发展,市场竞争日益激烈,传统的管理和办公系统多且复杂,用户需要使用多个系统才可完成一项工作,而且各个系统的界面和风格存在差异,造成了信息查找不便,大大降低了用户的工作效率.传统的客户关系管理平台(CRM).OA管理平台.财务管理.供应链管理.人力资源管理.档案管理.集团网站等,虽然在单方面提升了业务人员的工作效率,但是各系统之间缺少信息集成,用户.数据.流程都是分散的,这就造成了系统越多,管理难度就越大,信息孤岛也随之越来越多的一系列问题,从而无法从根本解决办公…
1.源码 本系列教程的源码已上传至GitHub:  https://github.com/shirayner/DingTalk_Demo 2.官方 官方源码:https://github.com/open-dingtalk/openapi-demo-java 钉钉官方文档 钉钉管理后台 https://g.alicdn.com/dingding/opendoc/docs/_server/tab8.html 2.大牛博客 (1) 钉钉实现企业级微应用免登陆详解 钉钉免登陆前端操作详解 (2) [J…
转载请注明原文地址:https://www.cnblogs.com/applerosa/p/11509512.html (by lnexin@aliyun.com 世间草木) 此教程注意点: 适用于第三方企业开发 H5微应用 形式,非企业内部开发, 非钉钉推荐的“小程序”方式: 消息推送模式为 HTTP回调 ,不使用钉钉收费的“RDS钉钉云推送数据源“模式: 开发前准备: 关于服务器,有公网服务器最好,没有的话需要 内网穿透工具: 调试的时候,由于钉钉的H5微应用调试只能“真机”调试,极其恶心,…
钉钉在企业移动办公领域有着很高的占有率,但是可能大家都会觉得,他在企业定制化,数据分析等领域有着很大的短板. 而我们的kintone作为PaaS平台,可以补足这个短板.很多开发者想知道如何利用钉钉还有阿里云还有paas平台这些资源,来做一个整合开发? 那下面我们就结合钉钉和kintone两者的API,来完成他们之间数据的整合吧. 课题 这次我们的课题是获取钉钉的打卡结果.签到.审批数据,并且同步到kintone. 钉钉篇 创建一个小程序 在钉钉开放平台,在“企业内部开发”下建立一个小程序: 记下…
钉钉开放平台 本文是针对钉钉开放平台的基于dotNetCore服务端开发和配置的描述 钉钉可开发的程序包括 企业内部应用,第三方企业应用,第三方个人应用 一.环境搭建 1.钉钉开发需要企业钉钉账号,如果学习测试环境的话可以自己注册一个企业号. 2.根据需求创建程序.注意服务器出口IP,即Ip白名单,开发环境设定为本地Ip,生产环境则为服务器Ip.[如图] 3.应用创建完成 得到 AgentId,AppKey,AppSecret 二.环境测试 1. SDK下载 项目引用SDK dll 2. 获取部…
钉钉,数字化新工作方式,让工作更简单 目前在钉钉的官网可以看到,超过700万家企业组织正在使用钉钉.笔者也相信,这一数字每天都在增加.获得群众的认可,也是理所当然的,体验过钉钉,就能感觉到,钉钉的考勤.签到.审批.日报.周报.钉消息.视频会议等等做得非常好.笔者已使用钉钉将近4年,能体验到的唯一不足就是PC端的钉钉偶尔会觉得有点卡,当然这个不能排除是电脑配置低这一因素.目前钉钉很多基础功能都是免费,对于小微企业来说无疑是一大福音.对于钉钉的介绍,一片文章是不够的.本文主要讲的,是作为发展中的企业…
1.市场在拥抱钉钉 虎嗅8月30日发表了一篇文章<为什么有很多企业沉迷钉钉无法自拔>,有兴趣的可以去看看,下附文章链接. 文章不短,其中有一部分阐述了:钉钉抓住以人为核心的"智能协同"差异化路线,帮助企业打破过去以流程为中心.把人只作为其中一部分的流程方式,转变为所有流程中的人和物都围绕人为中心.再看钉钉的数据,无论是用户数(2亿+).企业组织数(1000万+).开放平台的开发者数(20万+).企业应用数(30万+).开发者服务的企业组织数(500万+)等等,无一不说明,市…
最近项目上在做钉钉开发中,经常会遇到使用post方式调用钉钉内部的方法(微信也有一样),这里涉及到跨域的post调用,但跨域一般都是用jsonp格式,而这个格式只支持get方式.尝试了挺多方法都没有返回 {"errcode":43002,"errmsg":"需要POST请求"} 让人很费解,用js方式不行,只能尝试从后台解决问题,然后写了如下方法: /// <summary> /// /// </summary> ///…
前段时间,用钉钉进行了服务器端的开发,对照着官方文档,感觉还是比较顺利的.后续想有时间研究一下PC端客户端的开发,看着官方文档,说的确实是比较简练,但也确实没看太明白,废了半天劲也没成功.后来经过无数次尝试,发现期待的弹窗竟然出现了,为了让其他人少走弯路,下面将自己的心得记录如下: 钉钉PC客户端开发注意事项: 1.必须有公网IP或者合法的域名(可怜没有,只能用github子域名作为域名了):       2.必须在钉钉的浏览器中才能(即钉钉客户端.或者钉钉手机端)       3.如果是HTT…
源码已上传GitHub:传送门 一.准备事项 1.1  一个能在公网上访问的项目: 参见:Java微信开发_02_本地服务器映射外网 1.2  一个钉钉账号 去注册 1.3 创建一个应用 登录钉钉后台—>工作台—>自建应用 二.钉钉的配置参数 2.1 CorpID 和 corpSecret 首先登录开发者平台: 登录钉钉后台—>工作台—>自建应用—>应用开发,即可进入开发者平台 然后,开发者账号管理—>生成corpSecret 2.2 AgentId 登录钉钉后台—&g…
源码已上传GitHub: https://github.com/shirayner/DingTalk_Demo 一.本节要点 1.免登授权的流程 (1)签名校验 (2)获取code,并传到后台 (3)根据code获取userid (4)根据userid获取用户信息,(此处可进行相应业务处理) (5)将用户信息传到前端,前端拿到用户信息,并做相应处理 2.计算签名信息(signature) 2.1 待签名参数 ticket jsapi_ticket nonceStr        随机字符串,随机…
一.本节要点 1.通讯录权限 ISV(应用服务商)默认无管理通讯录的权限,企业应用默认有所有通讯录权限. 2.数据传输格式—JSON 请参见: Java_数据交换_fastJSON_01_用法入门 二.代码实现 1.HTTP请求工具类—HttpHelper package com.ray.dingtalk.qy.util; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; impor…
我在钉钉官网上看了下,关于调用钉钉接口,发送企业消息通知,他给的核心代码总共几行. 用到的一个接口引用 TopSDK.dll 下载网址https://open-doc.dingtalk.com/doc/sdk.htm?spm=a219a.7629140.0.0.mItbfA&treeId=177&articleId=104963&docType=1 选择 .Net版本TOP接入SDK IDingTalkClient client = new DefaultDingTalkClien…
前言:本提醒服务,是由C#语言开发的,主要由windows服务项目和winform项目组成,运行服务可实现功能:向钉钉自定义机器人群组里,定时,定次,推送多个自定义消息内容,并实现主要功能的日志记录.  可以说功能强大!!! 备注: 本文主要2部分:1-关键代码,2-安装步骤.    A-关键代码: 1-服务: public partial class MyTipsService : ServiceBase { public MyTipsService() { InitializeCompone…
http://blog.csdn.net/baofeidyz/article/details/59059379 版权声明:转载请注明我的个人微信平台 暴沸 目录(?)[+] 写在前面:如果你还不知道钉钉是什么,就赶紧问问Google.当然,这篇博客是用流水线的形式完成钉钉扫码登录. 第一步,看官方文档 网站应用钉钉扫码登录开发指南(钉钉官网) 如果你想要通过用户扫码获取到他的个人信息,那么你需要完成全部的交互,如果你只是想为你的网站做一个免登录处理,其实只要拿到用户的openid就可以了.当然我…
源码已上传GitHub: https://github.com/shirayner/DingTalk_Demo 一.本节要点 1.免登授权的流程 (1)签名校验 (2)获取code,并传到后台 (3)根据code获取userid (4)根据userid获取用户信息,(此处可进行相应业务处理) (5)将用户信息传到前端,前端拿到用户信息,并做相应处理 2.计算签名信息(signature) 2.1 待签名参数 ticket jsapi_ticket nonceStr        随机字符串,随机…
一.异常 1.访问ip不在白名单之中 异常信息: "errcode":60020,"errmsg":"访问ip不在白名单之中" 异常背景:若没有设置ip白名单,则能正常获取accessToken,而在根据accessToken获取jsapiTicket时则会抛出这个异常 异常原因:没有设置ip白名单 异常解决:(1)查看服务器公网ip,linux下请参考  Linux_服务器_01_查看公网IP,windows下百度ip即可 (2)将服务器公网i…