万丈高楼平地起,基础不牢的我只好东拼西凑,面向百(gu)度(ge)编程,把自己学习的过程记录下来,防止遗忘。
准备工作
- 在钉钉开放平台后台创建企业内部开发微应用
- 内网穿透https://open-doc.dingtalk.com/microapp/kn6zg7/hb7000
虽然我有阿里云可以直接尝试,奈何vim
用的实在不熟悉,内网穿透本地开发。
安装库
创建xjyxls
目录,进入目录初始化项目,安装必要的包。
mkdir xjyxls
cd xjyxls
npm init
npm install express axios --save
代码
const express = require('express')
const dd = require('dingtalk-jsapi')
const axios = require('axios')
const app = express()
const port = 8080
axios.get('https://oapi.dingtalk.com/gettoken?appkey=YOUR_APP_KEY&appsecret=YOUR_APP_SECRET')
.then(function(res) {
console.log(res.data.access_token)
})
.catch(function(err){
console.log(err)
})
app.get('/', (req, res) => {
res.send('Hello World!')
});
app.listen(port, () => {
console.log(`Server started on port:${port}`);
});
运行代码
access_token
axios文档https://www.kancloud.cn/yunye/axios/234845,面向API编程,现学现用。
获取数据
拿到access_token后,获取部门列表
相关文档:https://g.alicdn.com/dingding/opendoc/docs/_server/tab2.html?t=1467363848453
感想
- 加强JavaScript和node基础的学习
- 这段代码做成snippet
参考资料
- header必须设置为
"Content-Type": "application/json"
, -
https://g.alicdn.com/dingding/opendoc/docs/_server/tab1.html
建立连接 - 微应用整体流程介绍https://g.alicdn.com/dingding/opendoc/docs/_guide/tab3.html
发送消息
本来很简单的东东,也要搞好久
const express = require('express')
const dd = require('dingtalk-jsapi')
const axios = require('axios')
const app = express()
const port = 8080
// 52579475 信息中心部门id
axios.get('https://oapi.dingtalk.com/gettoken?appkey=ding7cyjkqff16kzh8xu&appsecret=6wSweJy99iblZs1v9zByJa51gY9GA9P5OnlsXKUAm-p4aqRprXXyeDs8NwPyB_8o')
.then(function(res) {
console.log(res.data.access_token)
axios.post('https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2?access_token=' + res.data.access_token,
{
agent_id: '259176923',
dept_id_list: 52579475,
msg: {
'msgtype': 'text',
'text': {
'content': '潍坊(上海)新纪元提醒您,明天必须着正装'
}
}
},
{
headers: {
"Content-Type": "application/json"
}
}).then(function(res){
console.log(res.data)
}).catch(function(err){
console.log(err.errcode + err.errmsg + err.task_id)
})
})
.catch(function(err){
console.log(err)
})
app.get('/', (req, res) => {
res.send('Hello World!')
});
app.listen(port, () => {
console.log(`Server started on port:${port}`);
});
命令行
效果图
手机端
参考
https://open-doc.dingtalk.com/microapp/serverapi2/pgoxpy
服务器端API列表
网友评论