#webhook #ifttt #api-bindings #api

已删除 ifttt_webhook_rust

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

0.2.2 2021年3月11日
0.2.1 2021年3月11日
0.1.5 2021年3月11日

#6 in #ifttt

MIT 许可证

14KB
252 代码行

ifttt_webhook_rust

crate.io

一个简单的库绑定到ifttt的iftttwebhook API。有一个异步接口,可以在非阻塞功能中激活。还有一个时间延迟触发功能,可以在delay功能中延迟触发。

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

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

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

安装

cargo add ifttt_webhook_rust

用法

阻塞API

代码

    extern crate ifttt_webhook_rust
    extern crate dotenv
    use ifttt_webhook_rust::*

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

非阻塞API

Cargo.toml

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

代码

    extern crate ifttt_webhook_rust
    extern crate dotenv
    use ifttt_webhook_rust::*

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

具有时间延迟的非阻塞API

Cargo.toml

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

代码

    extern crate ifttt_webhook_rust
    extern crate dotenv
    use ifttt_webhook_rust::*
    
    dotenv::dotenv().unwrap();
    let event_name = dotenv::var("EVENT").unwrap();
    let api_key = dotenv::var("KEY").unwrap();
    let client = NonBlockingIftttWebHookClient::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–15MB
~148K SLoC