钉钉开发笔记(1)

钉钉开发分为:1、移动客户端。2、PC端。3、服务端。三个平台的开发。

1、移动端:面对钉钉手机用户和企业用户。

2、同上主要面向PC端的用户和企业。

3、服务端,用于用户和企业内部管理的平台方向,例如OA网站。

本人主要从事移动端和PC端的开发,所以,本笔记主要记录在这些问题中遇见的问题和困难,希望对大家有所帮助!

开发流程:

一、免登流程图   点击查看步骤

二、步骤详细:

步骤1:获取CorpID、CorpSecret(在企业钉钉微应用设置中获取)

步骤2:获取AccessToken。

开发者在调用开放平台接口前需要通过CorpID和CorpSecret获取AccessToken。获取AccessToken的方法是向

https://oapi.dingtalk.com/gettoken?corpid=id&corpsecret=secrect GET请求。

步骤3:获取jsapi_ticket(服务器中调用,用以生成可用的ticket)点击查看官方文档

获取jsapi_ticket

企业在使用微应用中的JS API时,需要先从钉钉开放平台接口获取jsapi_ticket生成签名数据,并将最终签名用的部分字段及签名结果返回到H5中,JS API底层将通过这些数据判断H5是否有权限使用JS API。

请求说明

Https请求方式:GET

https://oapi.dingtalk.com/get_jsapi_ticket?access_token=ACCESS_TOKEN

步骤4:签名生成算法

开发者在web页面使用钉钉容器提供的jsapi时,需要验证调用权限,并以参数signature标识合法性

签名生成的规则:

List keyArray = sort(noncestr,timestamp,jsapi_ticket,url);

String str = assemble(keyArray);

signature = sha1(str);

参与签名的字段包括在上文中获取的jsapi_ticket,noncestr(随机字符串,自己随便填写即可),timestamp(当前时间戳,具体值为当前时间到1970年1月1号的秒数),url(当前网页的URL,不包含#及其后面部分,需要对url中query部分做一次urldecode)。例如:

noncestr=Zn4zmLFKD0wzilzM

jsapi_ticket=mS5k98fdkdgDKxkXGEs8LORVREiweeWETE40P37wkidkfksDSKDJFD5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcKIDU8l

timestamp=1414588745

url=//open.dingtalk.com

注意:若页面url为http://abc.com?url=http%3A%2F%2Fabc.com%2somewhere,则用于生成签名的url应对query部分做一次urldecode,正确结果应为http://abc.com?url=http://abc.com/somewhere

步骤1. sort()含义为对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)

步骤2. assemble()含义为根据步骤1中获的参数字段的顺序,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串

步骤2. sha1()的含义为对在步骤2拼接好的字符串进行sha1加密。

步骤5:获取免登用户信息 击查看官方文档

通过CODE换取用户身份

企业应用的服务器在拿到CODE后,需要将CODE发送到钉钉开放平台接口,如果验证通过,则返回CODE对应的用户信息。**此接口只用于免登服务中用来换取用户信息**

请求说明

Https请求方式: GET

https://oapi.dingtalk.com/user/getuserinfo?access_token=ACCESS_TOKEN&code=CODE

时间: 2024-10-18 06:00:24

钉钉开发笔记(1)的相关文章

钉钉开发笔记(4) 签名验证问题的处理

忙了一天竟然在一个以前自认为,很基础的问题上卡顿了,为了防止以后出现类似错误,决定还是记录下来,顺便整理下思路! 钉钉开发中有PC和移动之分,这个已经讲过,其中最基础也是最重要的当属其中的签名验证了,也只有这个步骤成功了你才可以调取JSAPI文档中的一些组件的接口.(不用钉钉组件的童鞋可以无视我这句  -.-) 其中PC版的签名验证算法如图: 1 JS-API权限签名算法 2 3 如果开发者想使用钉钉容器开放的jsapi接口,需要经过以下流程: 4 5 首先需要获取jsapi_ticket. 6

钉钉开发平台服务端笔记

钉钉开发平台服务端练习:1.在钉钉开发者平台创建一个微应用(前提是注册):2.将编写好的项目放在钉钉微应用中,建立两者的连接.把开发的项目的首页地址,和后台地址,给我们的微应用.地址必须是http://打头的公网地址.或者说是把工程放到一台服务器中,对外进行访问.3.然后根据服务端开发文档创建微应用的各个功能.如:部门操作:员工操作等. 如何接入?首先要有公司的CorpID企业标识和CorpSecret企业凭证密钥,然后再获取访问令牌accessToken. public static fina

C#如何在钉钉开发平台中创建部门

钉钉是阿里巴巴专为中小企业和团队打造的沟通.协同的多端平台,钉钉开放平台旨在为企业提供更为丰富的办公协同解决方案.通过钉钉开放平台,企业或第三方合作伙伴可以帮助企业快速.低成本的实现高质量的移动微应用,实现生产.管理.协作.运营的移动化.官网的列子往往都是java,php和nodejs的,下面我用c#来实现一个简单的列子,来说明如何与钉钉进行交互: 1 创建一个网站: 其中官网有如何进行账号注册等开发的准备工作,这里不阐述.假设你已经成功申请了企业账号,然后获取了CorpId和CorpSecre

钉钉开发中post异步调用问题

最近项目上在做钉钉开发中,经常会遇到使用post方式调用钉钉内部的方法(微信也有一样),这里涉及到跨域的post调用,但跨域一般都是用jsonp格式,而这个格式只支持get方式.尝试了挺多方法都没有返回 {"errcode":43002,"errmsg":"需要POST请求"} 让人很费解,用js方式不行,只能尝试从后台解决问题,然后写了如下方法: /// <summary> /// /// </summary> ///

【JavaWeb开发】初步实现网站应用钉钉扫码登录

http://blog.csdn.net/baofeidyz/article/details/59059379 版权声明:转载请注明我的个人微信平台 暴沸 目录(?)[+] 写在前面:如果你还不知道钉钉是什么,就赶紧问问Google.当然,这篇博客是用流水线的形式完成钉钉扫码登录. 第一步,看官方文档 网站应用钉钉扫码登录开发指南(钉钉官网) 如果你想要通过用户扫码获取到他的个人信息,那么你需要完成全部的交互,如果你只是想为你的网站做一个免登录处理,其实只要拿到用户的openid就可以了.当然我

钉钉、阿里云和PaaS平台的整合开发

钉钉在企业移动办公领域有着很高的占有率,但是可能大家都会觉得,他在企业定制化,数据分析等领域有着很大的短板. 而我们的kintone作为PaaS平台,可以补足这个短板.很多开发者想知道如何利用钉钉还有阿里云还有paas平台这些资源,来做一个整合开发? 那下面我们就结合钉钉和kintone两者的API,来完成他们之间数据的整合吧. 课题 这次我们的课题是获取钉钉的打卡结果.签到.审批数据,并且同步到kintone. 钉钉篇 创建一个小程序 在钉钉开放平台,在“企业内部开发”下建立一个小程序: 记下

钉钉二次开发c#发起审批

原文:钉钉二次开发c#发起审批 string token = _t.GetTokens(); IDingTalkClient client = new DefaultDingTalkClient("https://eco.taobao.com/router/rest"); SmartworkBpmsProcessinstanceCreateRequest req = new SmartworkBpmsProcessinstanceCreateRequest(); req.AgentId

钉钉小程序微应用技术扫盲开发手册|钉钉小程序开发实战|钉钉小程序新手福利|梁凤财

钉钉小程序比较全的开发手册,一次扫盲,一路顺畅!. 图片为书中部分内容 下载地址: 链接:https://pan.baidu.com/s/1LuPbtRL2lUIKbvfjw2mEvw 提取码:pbvi 复制这段内容后打开百度网盘手机App,操作更方便哦 原文地址:https://www.cnblogs.com/ZenoLiang/p/12677463.html

Java钉钉开发_02_免登授权(身份验证)(附源码)

源码已上传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        随机字符串,随机