钉钉 jsapi-node

Posted petewell

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了钉钉 jsapi-node 相关的知识,希望对你有一定的参考价值。

基于express的钉钉微应用探索

建立服务

首先已经默认已经安装了node环境和npm工具

1
2
//使用express工具创建dingtalk项目,使用ejs模板
express dingtalk --ejs

安装ding_jsapi_redis库

1
cnpm install ding_jsapi_redis --save

在项目更目录创建config.js配置文件,文件内容包含如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//钉钉的相关配置信息
exports.ding = {
corpId:"", //必填
secret:"",//必填
prefix:"" //必填,该参数是用于区分redis服务器中的多个token和ticket准备的 ,例如ding_
};
//ridis服务器相关配置
exports.redis = {
port:6379,
host :'192.168.1.218',
auth:{}
};
exports.domain = "http://192.168.1.6:3000"

创建controller

在根目录下新建文件夹controllers,
在controllers文件夹中新建IndexController.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//首先导入config配置文件
var config = require("../config");
//导入ding_jsapi_redis
var ding = require("ding_jsapi_redis");
//将config文件中的参数传入到ding库中
ding.conf.ding = config.ding;
ding.conf.redis = config.redis;
module.exports = {
index:function(req,res){
var url = config.domain+req.url;
// {redis:config.redis,ding:config.ding}
var params = {
id:"31441266"
}
var url = "http://192.168.1.6:3000/";
ding.getSignature(url).then(function(data){
console.log(data);
res.render('index', { title: 'Express',dd_config:data });
}).catch(function (err) {
console.log(err)
})
}
}

编辑index.ejs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!DOCTYPE html>
<html>
<head>
<title><%= title %></title>
<link rel='stylesheet' href='/stylesheets/style.css' />
<script type="text/javascript" src="http://g.alicdn.com/ilw/ding/0.7.3/scripts/dingtalk.js"></script>
<script type="text/javascript">
var corpId = '<%=dd_config.corpId%>' ;
var timeStamp = '<%=dd_config.timeStamp%>' ;
var nonceStr = '<%=dd_config.nonceStr%>' ;
var signature = '<%=dd_config.signature%>' ;
</script>
<script type="text/javascript" src="javascripts/index.js"></script>
</head>
<body>
<p>Welcome to <%= title %></p>
<button id="scan" onclick="scan()">scan</button>
</body>
<script type="text/javascript">
</script>
</html>

在javascripts中创建index.js文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
dd.config({
agentId: '82143702',
corpId:corpId,
timeStamp: timeStamp,
nonceStr: nonceStr,
signature: signature,
jsApiList: [
'biz.util.scan',
]
});
dd.ready(function () {
alert("dd ready");
dd.error(function(err) {
alert('dd error: ' + JSON.stringify(err));
});
})
dd.error(function(err) {
alert('dd error: ' + JSON.stringify(err));
});
function scan() {
alert("i am scan");
dd.biz.util.scan({
type: "barCode",//type为qrCode或者barCode
onSuccess: function(data) {
//onSuccess将在扫码成功之后回调
alert(data.text);
console.log(data);
/* data结构
{ 'text': String}
*/
},
onFail : function(err) {
alert(err);
}
})
}

至此,一个简单的基于钉钉的express服务器就搭建好了。主要核心在于获取ticket,目前已经在ding_jsapi_reids中封装好,直接使用即可。如果有更好的方法请联系我。谢谢。

原文:大专栏  钉钉 jsapi-node (1)


以上是关于钉钉 jsapi-node 的主要内容,如果未能解决你的问题,请参考以下文章

钉钉宜搭邵磊:钉钉宜搭低代码加速业务互联 让改变发生

重新拾取:TFS2017钉钉机器人源代码签入通知

钉钉(dingding)的sonar(代码质量管理工具的)集成通知

钉钉宜搭入选Forrester《中国低代码平台市场分析报告》

开放低代码的钉钉,能否普惠1700万企业?

钉钉宜搭入选Forrester《中国低代码平台市场分析报告》