#webhook #ifttt #api-bindings #api

ift-webhook

一个方便的工具,用于触发ifttt的webhooks

4个版本

0.2.8 2021年3月13日
0.2.7 2021年3月13日
0.2.6 2021年3月11日
0.2.5 2021年3月11日
0.2.4 2021年3月11日

#1922 in 开发工具

MIT 许可证

14KB
252

ift-webhook

crate.io

一个简单的库绑定到ifttt的iftttwebhook API。异步接口可以在non-blocking特性下激活。还有一个延时触发功能,用于在delay特性下延迟触发。

阻塞接口使用ureq,非阻塞接口使用reqwest内部。

关于ifttt webhook的使用:例如,您可以调用一个由ifttt提供的url,然后在您的手机上接收通知(可能包括您提供的数据*)。

*有时您可以在请求中设置一些json数据(最多三个字段),这取决于连接的webhook服务。

安装

cargo add ift-webhook

如何使用

阻塞API

代码

extern crate ift-webhook
extern crate dotenv
use ift_webhook::*

dotenv::dotenv().unwrap();
let event_name = dotenv::var("EVENT").unwrap();
let api_key = dotenv::var("KEY").unwrap();
let client = IftWHClient::new(&api_key);
let data = WebHookData::new(Some("test1"), Some("test2"), Some("test3"));
let res = client.trigger(&event_name, data);
assert!(res.is_ok())

非阻塞API

Cargo.toml

ift-webhook={version=*,default-features= false,features=["non-blocking"]}

代码

extern crate ift-webhook
extern crate dotenv
use ift_webhook::*

dotenv::dotenv().unwrap();
let event_name = dotenv::var("EVENT").unwrap();
let api_key = dotenv::var("KEY").unwrap();
let client = AsyncIftWHClient::new(&api_key);
let res = client.trigger(&event_name, None).await;
assert!(res.is_ok())

带时间延迟的非阻塞API

Cargo.toml

ift-webhook={version=*,default-features= false,features=["delay"]}

代码

extern crate ift-webhook
extern crate dotenv
use ift_webhook::*

dotenv::dotenv().unwrap();
let event_name = dotenv::var("EVENT").unwrap();
let api_key = dotenv::var("KEY").unwrap();
let client = AsyncIftWHClient::new(&api_key);
let res_handler: DelayResultHandler =
    client.trigger_with_delay(&event_name, None, std::time::Duration::from_secs(5));
///do something else
let res = res_handler.await;
assert!(res.is_ok())

依赖

~0–11MB
~133K SLoC