DingTalk ISV
钉钉套件主动调用API, 自带cache。
安装
npm install dingtalk-isv
ISV套件回调URL处理
express中间件。自动验证回调URL有效性。
构造函数:
var DingIsv = ;var config = token: 'xxxxxxxxx' encodingAESKey: 'xxxxxxxxxxxxxxxxxxx' suiteid: 'xxxxxxxxxxxx' //第一次验证没有不用填 {//可选,和主动调用API: dingtalk_suite 配合使用。 //data:{value: ticket字符串, expires:到期时间,钉钉回调时间戳 + 20分钟} //..dosomething } app;
ISV套件API操作示例
构造函数:
var DingIsv = ;var conf = suiteid: 'suitexpiygdnxxxxx' secret: 'C1oXyeJUgH_QXEHYJS4-Um-zxfxxxxxxxxxxxxxxxxxx-6np3fXskv5dGs' { //从数据库中取出Tikcet,返回的data样式为:{value: 'xxxxxxx', expires:1452735301543} //ticket从 dingtalk_suite_callback 处获得 return { //..dosomething } } { //从数据库中取出Token,返回的data样式为:{value: 'xxxxxxx', expires:1452735301543} return { //..dosomething } } { //存储Token到数据库中,data样式为:{value: 'xxxxxxx', expires:1452735301543//过期时间} //..dosomething } var api = conf;
方法
获取企业号永久授权码
api
tmp_auth_code字符串,从DingIsv.SuiteCallBack处获得。
获取企业号Token
//auth_corpid和permanent_code由上面接口获得。api
获取企业号信息
api
获取企业号应用
api
激活授权套件
api
为授权方的企业单独设置IP白名单
//ip_whitelist为数组格式:["1.2.3.4","5.6.*.*"]api
dingtalk sso
钉钉免登接口,ISV和企业号通用。
示例
构造函数:
var DingIsv = ;var conf = corpid: 'dingxxxxxxxxxxxxxxx' SSOSecret:'C1oXyeJUgH_QXEHYJS4-Um-zxfxxxxxxxxxxxxxxxxxx-6np3fXskv5dGs' //ISV的corpid,SSOSecret在 http://console.d.aliyun.com/#/dingding/env 查看。var api = conf;
方法
通过CODE(免登授权码)换取用户身份
api
生成授权链接
api
dingtalk enterprise
钉钉企业号API,自带cache,并自带ISV套件操纵接口。
示例
config:
var DingIsv = ; var config = corpid : 'xxxxxxxxxxxxxxxx' //ISV套件控制的话,可不填 secret : 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx' //ISV套件控制的话,可不填 { //从数据库中取出Token,返回的data样式为:{value: 'xxxxxxx', expires:1452735301543} //return '' } { //存储Token到数据库中,data样式为:{value: 'xxxxxxx', expires:1452735301543//过期时间} //save ... } { //从数据库中取出JsApiTicket,返回的data样式为:{value: 'xxxxxxx', expires:1452735301543} //return ... } { //存储JsApiTicket到数据库中,data样式为:{value: 'xxxxxxx', expires:1452735301543//过期时间} //save ... };
创建企业号API:
var api = config;
用ISV套件操作企业号?OK
只需要两个参数:
//newSuiteApi: 一个dingtalk_suite实例。var dingEnterprise = dingSuite;//只需传入corpid, 和企业号的永久授权码就能控制企业号。var api = dingEnterprise;
如果你获取永久授权码的同时,获得了token_cache,可以加上第三个参数,这样可以省一次数据库查询。
//token为Object格式 key为: value , expiresvar api = dingEnterprise;
如果你获取永久授权码的同时,获得了token_cache和jsapi_ticket_cache,可以加上第四个参数,这样可以省两次数据库查询。
//token和jsapi_ticket_cache为Object格式 key为: value , expiresvar api = dingEnterprise;
接口方法
主要方法
api.getLatestToken().then(function(result){ });
获得最新token。
//例:api;
api.getUrlSign(url);
生成url授权参数,用于前端jsConfig.
//例:api;
api.get(ddApiPath, opts).then(function(result){ });
代理get方法。使有此方法可调用钉钉官方企业号文档的get接口,而不用管token。
//例://获取部门列表//钉钉文档:http://ddtalk.github.io/dingTalkDoc/?spm=a3140.7785475.0.0.p5bAUd#获取部门列表api; //获取部门详情//钉钉文档:http://ddtalk.github.io/dingTalkDoc/?spm=a3140.7785475.0.0.p5bAUd#获取部门详情api;
api.post(ddApiPath, opts).then(function(result){ });
代理post方法。使有此方法可调用钉钉官方企业号文档的post接口,而不用管token。
用法同api.get。
其它封装的一些方法。
部门
//获得部门列表api; //获得部门详情api; //创建部门api;//例//名字,父idapi;//名字,详细配置api; //更新部门api; //删除部门api;
微应用
api;
消息
api; api;
用户
//获取部门用户api; //获取部门用户详细api; //获取用户信息api; //通过code获取用户一些信息(App登录用)。api;