robot-for-ding
v4.0.0
Published
对接钉钉机器人
Downloads
15
Readme
robot-for-ding
说明
本项目是对接钉钉自定义小机器人,消息格式请查阅文档, 主要将发送格式进行平铺
起步
npm i robot-for-ding
使用
const RobotDing = require('../lib')
const ding = new RobotDing({
webhook: 'webhook',
secret: 'secret'
})
// 文本
ding.sendText({
content: '封装成功',
isAtAll: true
})
// 链接
ding.sendLink({
title: '武松打虎',
text: '武松打虎,出自施耐庵所著《水浒传》中的第二十三回《横海郡柴进留宾 景阳冈武松打虎》,主要讲述梁山好汉武松回家探望哥哥,途中路过景阳冈。在冈下酒店喝了十八碗酒,踉跄着向冈上走去。行不多时,只见一棵树上写着:“近因景阳冈猛虎伤人,但有过往客商,应结伙成队过冈,请勿自误。”武松认为,这是酒家写来吓人的,为的是让过客住他的店,没有理它,继续往前走。太阳快落山时,武松来到一破庙前,见庙门贴了一张官府告示,武松读后,方知山上真有虎,待要回去住店,怕店家笑话,又继续向前走。由于酒力发作,便找了一块大青石,仰身躺下,刚要入睡,忽听一阵狂风呼啸,一只眼睛上翘,额头白色的老虎朝武松扑了过来,武松急忙一闪身,躲在老虎背后。老虎一纵身,武松又躲了过去。老虎急了,大吼一声,用尾巴向武松打来,武松又急忙跳开,并趁猛虎转身的那一霎间,举起哨棒,运足力气,朝虎头猛打下去。只听"咔嚓"一声,哨棒打在树枝上。老虎兽性大发,又向武松扑过来,武松扔掉半截棒,顺势骑在虎背上,左手揪住老虎头上的皮,右手猛击虎头,没多久就把老虎打得眼、嘴、鼻、耳到处流血,趴在地上不能动弹。武松怕老虎装死,举起半截哨棒又打了一阵,见那老虎确实没气了,才住手。从此武松威名大震。',
messageUrl: "https://baike.baidu.com/item/%E6%AD%A6%E6%9D%BE%E6%89%93%E8%99%8E/10966239?fr=aladdin",
picUrl: "https://bkimg.cdn.bcebos.com/pic/b7003af33a87e9507d51d32011385343fbf2b433?x-bce-process=image/resize,m_lfit,w_268,limit_1/format,f_jpg"
})
// markdown
ding.sendMarkdown({
title: '武松打虎',
text: `### 武松打虎 \n 武松打虎,出自[施耐庵](https://baike.baidu.com/item/%E6%96%BD%E8%80%90%E5%BA%B5)所著[《水浒传》](https://baike.baidu.com/item/%E6%B0%B4%E6%B5%92%E4%BC%A0)中的第二十三回《横海郡柴进留宾 景阳冈武松打虎》,主要讲述梁山好汉武松回家探望哥哥,途中路过景阳冈。在冈下酒店喝了十八碗酒,踉跄着向冈上走去。行不多时,只见一棵树上写着:“近因景阳冈猛虎伤人,但有过往客商,应结伙成队过冈,请勿自误。”武松认为,这是酒家写来吓人的,为的是让过客住他的店,没有理它,继续往前走。太阳快落山时,武松来到一破庙前,见庙门贴了一张官府告示,武松读后,方知山上真有虎,待要回去住店,怕店家笑话,又继续向前走。由于酒力发作,便找了一块大青石,仰身躺下,刚要入睡,忽听一阵狂风呼啸,一只眼睛上翘,额头白色的老虎朝武松扑了过来,武松急忙一闪身,躲在老虎背后。老虎一纵身,武松又躲了过去。老虎急了,大吼一声,用尾巴向武松打来,武松又急忙跳开,并趁猛虎转身的那一霎间,举起哨棒,运足力气,朝虎头猛打下去。只听"咔嚓"一声,哨棒打在树枝上。老虎兽性大发,又向武松扑过来,武松扔掉半截棒,顺势骑在虎背上,左手揪住老虎头上的皮,右手猛击虎头,没多久就把老虎打得眼、嘴、鼻、耳到处流血,趴在地上不能动弹。武松怕老虎装死,举起半截哨棒又打了一阵,见那老虎确实没气了,才住手。从此武松威名大震。![武松打虎](https://bkimg.cdn.bcebos.com/pic/b7003af33a87e9507d51d32011385343fbf2b433?x-bce-process=image/resize,m_lfit,w_268,limit_1/format,f_jpg)`,
isAtAll: true
})
// ActionCard
ding.sendActionCard({
title: "武松打虎",
text: `### 武松打虎 \n 武松打虎,出自[施耐庵](https://baike.baidu.com/item/%E6%96%BD%E8%80%90%E5%BA%B5)所著[《水浒传》](https://baike.baidu.com/item/%E6%B0%B4%E6%B5%92%E4%BC%A0)中的第二十三回《横海郡柴进留宾 景阳冈武松打虎》,主要讲述梁山好汉武松回家探望哥哥,途中路过景阳冈。在冈下酒店喝了十八碗酒,踉跄着向冈上走去。行不多时,只见一棵树上写着:“近因景阳冈猛虎伤人,但有过往客商,应结伙成队过冈,请勿自误。”武松认为,这是酒家写来吓人的,为的是让过客住他的店,没有理它,继续往前走。太阳快落山时,武松来到一破庙前,见庙门贴了一张官府告示,武松读后,方知山上真有虎,待要回去住店,怕店家笑话,又继续向前走。由于酒力发作,便找了一块大青石,仰身躺下,刚要入睡,忽听一阵狂风呼啸,一只眼睛上翘,额头白色的老虎朝武松扑了过来,武松急忙一闪身,躲在老虎背后。老虎一纵身,武松又躲了过去。老虎急了,大吼一声,用尾巴向武松打来,武松又急忙跳开,并趁猛虎转身的那一霎间,举起哨棒,运足力气,朝虎头猛打下去。只听"咔嚓"一声,哨棒打在树枝上。老虎兽性大发,又向武松扑过来,武松扔掉半截棒,顺势骑在虎背上,左手揪住老虎头上的皮,右手猛击虎头,没多久就把老虎打得眼、嘴、鼻、耳到处流血,趴在地上不能动弹。武松怕老虎装死,举起半截哨棒又打了一阵,见那老虎确实没气了,才住手。从此武松威名大震。![武松打虎](https://bkimg.cdn.bcebos.com/pic/b7003af33a87e9507d51d32011385343fbf2b433?x-bce-process=image/resize,m_lfit,w_268,limit_1/format,f_jpg)`,
btnOrientation: '0',
singleTitle: '阅读全文',
singleURL: 'https://baike.baidu.com/item/%E6%AD%A6%E6%9D%BE%E6%89%93%E8%99%8E/10966239?fr=aladdin'
})
// FeedCard
ding.sendFeedCard({
links: [
{
"title": "武松打虎",
"messageURL": "https://baike.baidu.com/item/%E6%AD%A6%E6%9D%BE%E6%89%93%E8%99%8E/10966239?fr=aladdin",
"picURL": "https://bkimg.cdn.bcebos.com/pic/b7003af33a87e9507d51d32011385343fbf2b433?x-bce-process=image/resize,m_lfit,w_268,limit_1/format,f_jpg"
}
]
})
api
sendText
参数 | 参数类型 | 默认值 | 是否必填 | 必须 ----- | ----- | ----- | ----- | ----- content|String|''|是| 消息内容。 atMobiles|Array|[]|否| 被@人的手机号。 atUserIds|Array|[]|否| 被@人的用户userid。 isAtAll|Boolean|false|否| 是否@所有人。
sendLink
参数 | 参数类型 | 默认值 | 是否必填 | 必须 ----- | ----- | ----- | ----- | ----- title|String|''|是| 消息标题。 text|String|''|是| 消息内容。如果太长只会部分展示。 messageUrl|String|''|是| 点击消息跳转的URL。 picUrl|String|''|否| 图片URL。
sendMarkdown
参数 | 参数类型 | 默认值 | 是否必填 | 必须 ----- | ----- | ----- | ----- | ----- title|String|''|是| 首屏会话透出的展示内容。 text|String|''|是| markdown格式的消息。 atMobiles|Array|[]|否| 被@人的手机号。 atUserIds|Array|[]|否| 被@人的用户userid。 isAtAll|Boolean|false|否| 是否@所有人。
目前只支持markdown语法的子集,具体支持的元素如下:
标题
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
引用
> A man who stands for nothing will fall for anything.
文字加粗、斜体
**bold**
*italic*
链接
[this is a link](http://name.com)
图片
![](http://name.com/pic.jpg)
无序列表
- item1
- item2
有序列表
1. item1
2. item2
sendActionCard
参数 | 参数类型 | 默认值 | 是否必填 | 必须 ----- | ----- | ----- | ----- | ----- title|String|''|是| 首屏会话透出的展示内容。 text|String|''|是| markdown格式的消息。 singleTitle|String|''|是| 单个按钮的标题。 singleURL|String|''|是| 点击singleTitle按钮触发的URL。 btnOrientation|String|"1"|否| 0:按钮竖直排列 1:按钮横向排列 btns|Array|[]|否|按钮。独立跳转ActionCard类型时必填 btns[].title|String|--|否|按钮标题。独立跳转ActionCard类型时必填 btns[].actionURL|String|--|否|点击按钮触发的URL。独立跳转ActionCard类型时必填
sendFeedCard
参数 | 参数类型 | 默认值 | 是否必填 | 必须 ----- | ----- | ----- | ----- | ----- links|Array|[]|是| -- links[].title|String|--|是| 单条信息文本。 links[].messageURL|String|--|是| 点击单条信息到跳转链接。 links[].picURL|String|--|是| 单条信息后面图片的URL。
常见问题
当出现以下错误时,表示消息校验未通过,请查看机器人的安全设置。
// 消息内容中不包含任何关键词
{
"errcode":310000,
"errmsg":"keywords not in content"
}
// timestamp 无效
{
"errcode":310000,
"errmsg":"invalid timestamp"
}
// 签名不匹配
{
"errcode":310000,
"errmsg":"sign not match"
}
// IP地址不在白名单
{
"errcode":310000,
"errmsg":"ip X.X.X.X not in whitelist"
}