日期:[由Easzz 2017-07-18添加]
由于业务发展需要接入钉钉平台,为此专门编制了一份简明的接入文档,旨在帮助用户快速熟悉钉钉平台,调用钉钉相关接口实现具体业务逻辑。
详细公文地址:
Java演示
演示说明
企业内部应用程序演示地址
Isv应用程序地址
调试工具
SDK
Java SDK分为TOP(淘宝开放平台)和OAPI。前者通过restfull请求,后者则直接通过HTTP请求。
顶SDK地址
OAPI SDK地址
大多数接口都可以使用OAPI直接调用,例如地址簿(人员、部门)、get令牌、jsapi_ticket等。
少量接口,如审批、角色关联等,都是在TOP模式下调用的。
详细介绍了官方接口文档的具体用法,后面将选取几个示例。
微应用
企业创建微应用后,钉钉客户端工作台中会出现相应的应用。点击进去,即进入H5开发环境,部分业务需求即可完成。在H5环境下,可以通过钉钉相关接口调用原生控件,比如拍照、录音、地图定位等。接口调用步骤
JSAPI列表
有些API**不需要ddconfig,可以直接在其中调用。有些需要**ddconfig,在成功调用之前必须对其进行身份验证。
在调用jsapi之前,需要do(),所需参数如下,一般从后台计算,然后返回到首页。注意,timeStamp,nonceStr必须与后端用来计算签名的随机数和时间戳一致。
其中签名签名通过j
Sapi_ticket(通过jsapi_ticket接口获取)、noncestr(随机字符串,可以自己填写)、timestamp(当前时间戳,具体值为当前时间到1970年1月1日的秒数)、url(当前网页的url,不包括以下部分,需要对url的查询部分做一个urldecode)。具体代码如下
成功时触发(函数(){});触发此回调函数后需要使用Jsapi
失败后触发(函数(错误){});可以在返回的错误中查看错误消息
免登录流程图
之后,可以调用免登录接口获取代码,然后通过代码获取用户身份。具体代码如下
获取代码后,通过/user/getUserInfo接口获取用户的userid,然后通过/user/get接口获取用户的详细信息。与数据库中的用户信息相比较,如果一致则允许登录。
两种连接方式
官方的SDK分为两种类型,TOP和OAPI
其中TOP需要导入这个jar包。
需要导入OAPI
这四个罐子包装。
在顶级模式下调用实例(批准)
接口文档
首先需要在后台OA模板中添加审批模板,审批模板只支持单行文本框、图片、明细三个表单控件,明细可以包含多个文本框和图片
此外,您需要获得processCode,它是在模板的url参数中获得的
OAPI调用实例
平台的大部分接口都可以通过OAPI接口直接调用,它的底层也是封装的http请求,更方便我们调用。
中根据分类封装不同的接口请求,以及
我们可以直接使用相应的模型。
文件地址s1
回调事件将由用户的某些操作(如通讯录成员的更改、组回复的更改、审批文件的更改)触发。当触发时,nail会将一条消息推送到我们的回调地址,通过该地址执行特定的业务逻辑。
若要使用回调,必须首先注册回调事件。
当nail服务器将事件推送到回调url时,它将携带签名、时间戳、nonce和encrypted encrypt字段,我们需要对这些字段进行解密以获得我们想要的数据。收到推送后,需要返回加密的“Success”字符串,表示已经收到推送。如果不返回,钉子就会继续推,达到一定阈值就不推了。因此,在回调事件中,如果有更复杂的业务逻辑,建议使用异步执行。让“success”字符串成功返回,避免重复推送。
以下是具体代码
注册回调事件
调用/call_back/register_call_back/接口注册回调事件
有20种回调事件可以注册S2
如果需要添加其他回调事件,则需要调用update回调事件接口。
可作为监控报警等。
创建自定义机器人,添加成员,获取机器人对应的Webhook地址
下面的示例是在云销售无法访问时向组推送消息。
ISV是一家专业的软件开发提供商,经过审核后可以上架钉钉应用市场,企业的管理员可以在市场上搜索将其添加到企业的工作面板中。添加时,会出现授权界面,其中显示此应用程序所需的一些权限信息。确认后,普通员工可以在钉钉客户端看到这款应用。ISV应用程序的开发比企业内部应用程序的开发复杂,主要涉及回调和授权
过程。
企业要开发ISV应用,首先需要进行认证,通过认证后才能开发。
认证后,注册后台开发人员,注册后可以创建新套件
后台需要保存令牌和数据加密密钥,以后处理回调请求时需要使用此密钥进行解密。
注册时,需要验证回调URL的有效性,会发出回调事件返回加密后的“随机”。验证通过,才能完成报名。
这个地址在三种情况下工作:1。创建一个套件;2.授权激活。3.用户购买试剂盒。
有11种回调类型。
钉钉服务器会定期推送Ticket到这个地址,我们需要在后台保存。稍后,我们将组合suite_key和suite_secret以获得套件访问令牌(suite_access_token)
注册完成后,将生成包密钥(suite_key)和包秘密(suite_secret)
然后可以创建一个微应用程序,其主页地址需要使用COPID模板参数来表示COPID,
例如。尸体
COPID将自动替换为当前企业的COPID,用于获取企业的access_token
以下是完整的访问流程图
nail定期向我们的服务器回调地址推送一个票据,该地址用于组合suite_key和suite_secret以换取包访问令牌(suit_access_token)。
当企业管理员(用户)安装此应用程序时,将有一个授权界面。点击后,钉钉将向我们推送临时授权代码(temp_auth_code)。
通过suit_access_toke
N和临时授权码(temp_auth_code)来交换永久授权码(PERMANT_CODE)。
当点击安装授权时,企业管理员(用户)会将临时授权代码推送到我们的后台。
通过永久授权码和授权人的企业id(auth_copid)获取企业授权的access_token,通过这个token,可以操作企业的相关接口。
当企业用户授权打开套件时,ISV需要激活套件(调用激活接口),否则企业无法使用它。
地址
官方常见问题解答地址
在企业应用程序中,access_token的过期时间为2小时,在此期间获取和返回相同的数据,并自动续订。
Jsticket的过期时间为2小时,并在时限内获得。它是一个全新的jsticket,过期时间为2小时
在ISV应用程序中,jsticket过期2小时,在期限内再次检索,返回相同的结果并自动续订