21 个版本 (12 个稳定版本)
2.0.2 | 2021年1月8日 |
---|---|
2.0.0 | 2020年5月15日 |
1.3.2 | 2020年5月4日 |
1.2.1 | 2020年1月23日 |
0.3.0 | 2019年12月29日 |
#631 在 文本处理
每月下载量 43
29KB
499 行
dingtalk
DingTalk 机器人工具,使用钉钉机器人发送文本/Markdown/链接消息
钉钉机器人 Rust SDK
注意:从版本 1.1.0 开始,dingtalk 使用 reqwest 0.10.0 的 async
/.await
API。
官方参考: https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq/0fa88adc
示例 1
use dingtalk::DingTalk;
#[tokio::main]
pub async fn main() -> Result<(), Box<dyn std::error::Error>> {
let dt = DingTalk::new("<token>", "");
dt.send_text("Hello world!").await?;
Ok(())
}
需要使用 crate: tokio = { version = "0.2.6", features = ["full"] }
.
示例 2(从文件读取 token)
#[tokio::main]
pub async fn main() -> Result<(), Box<dyn std::error::Error>> {
let dt = DingTalk::from_file("~/.dingtalk-token.json")?;
dt.send_text("Hello world!").await?;
Ok(())
}
示例,发送 Markdown 消息
dt.send_markdown("markdown title 001", r#"# markdown content 001
* line 0
* line 1
* line 2"#).await?;
示例,发送链接消息
dt.send_link("link title 001", "link content 001", "https://hatter.ink/favicon.png", "https://hatter.ink/").await?;
示例,发送信息卡片消息
dt.send_message(DingTalkMessage::new_feed_card()
.add_feed_card_link(DingTalkMessageFeedCardLink{
title: "test feed card title 001".into(),
message_url: "https://hatter.ink/".into(),
pic_url: "https://hatter.ink/favicon.png".into(),
})
.add_feed_card_link(DingTalkMessageFeedCardLink{
title: "test feed card title 002".into(),
message_url: "https://hatter.ink/".into(),
pic_url: "https://hatter.ink/favicon.png".into(),
})
).await?;
示例,发送操作卡片消息(单个按钮)
dt.send_message(DingTalkMessage::new_action_card("action card 001", "action card text 001")
.set_action_card_signle_btn(DingTalkMessageActionCardBtn{
title: "test signle btn title".into(),
action_url: "https://hatter.ink/".into(),
})
).await?;
示例,发送操作卡片消息(多个按钮)
dt.send_message(DingTalkMessage::new_action_card("action card 002", "action card text 002")
.add_action_card_btn(DingTalkMessageActionCardBtn{
title: "test signle btn title 01".into(),
action_url: "https://hatter.ink/".into(),
})
.add_action_card_btn(DingTalkMessageActionCardBtn{
title: "test signle btn title 02".into(),
action_url: "https://hatter.ink/".into(),
})
).await?;
JSON 配置
钉钉配置
{
"access_token": "<access token>",
"sec_token": "<sec token>"
}
企业微信配置
{
"type": "wechat",
"access_token": "<token>"
}
变更日志
- v2.0.0
- 移除
'a
生命周期
- 移除
- v1.3.2
- 添加
DingTalk::from_token
- 添加
- v1.3.1
- 添加
DingTalk::new_wechat
- 添加
- v1.3.0
- 支持企业微信,添加类型
"type": "wechat"
,支持方法DingTalk::send_text
- 支持企业微信,添加类型
- v1.2.1
- 移除
maplit
crate
- 移除
- v1.2.0
- 使用
serde
和serde_json
crate,替换json
crate
- 使用
- v1.1.2
- 使用
hmac
和sha2
crate,替换rust-crypto
crate
- 使用
- v1.1.1
DingTalk::from_json
添加direct_url
- 通过 clippy 修复问题
- v1.1.0
- 将 fn 改为 async/.await
- v1.0.1
- 修改两个函数名
- 添加readme示例代码
- v1.0.0
TEXT
->Text
,更改枚举大小写- 添加
ActionCard
消息,发送行动卡消息类型 - 为
DingTalk
添加direct_url
,用于发送机器人 - 实现了https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq/0fa88adc上列出的几乎所有功能
- v0.3.0
- 添加
FeedCard
消息,发送feed卡消息类型
- 添加
- v0.2.1
- 添加
Dingtalk::from_json
,从JSON字符串中读取令牌
- 添加
- v0.2.0
- 添加
DingTalk::from_file
,从文件中读取令牌
- 添加
- v0.1.2
- 添加对
Default::default()
的支持
- 添加对
- v0.1.1
- 添加
set_default_webhook_url
,默认钉钉webhook URL
- 添加
- v0.1.0
- 添加
DingTalk::send_link(...)
,发送链接消息
- 添加
- v0.0.3
- 添加
DingTalkMessage
,现在可以设置at_all
,at_mobiles
- 添加
依赖项
~4.5-9MB
~201K SLoC