#短信 #API绑定 #messagebird

messagebird-async

messagebird短信API的包装器

15个版本

0.5.0 2020年3月19日
0.4.0 2019年1月17日
0.4.0-beta.12018年12月27日
0.3.1 2018年12月1日
0.0.4 2018年9月18日

#1130 in 异步

MIT/Apache

90KB
2.5K SLoC

messagebird-async

Build Status Crates.io docs.rs License

MessageBird是一种以发送短信为核心的服务 https://www.messagebird.com/

示例

发送短信消息

向指定目标发送短信在 examples/send.rs 中实现

export MESSAGEBIRD_ACCESSKEY=abio8usad..dfahdk
export SMS_RECIPIENT=1234556

SMS_RECIPIENT 不应包含前导零,也不应包含 +。国家代码仍然是必需的。

cargo run --example send

或复制并粘贴

#[macro_use]
extern crate log;
extern crate env_logger;
extern crate futures;
extern crate messagebird_async;
extern crate tokio_core;

use futures::future::Future;
use messagebird_async::errors::*;
use messagebird_async::sms;
use messagebird_async::sms::*;

fn main() -> Result<(), MessageBirdError> {
    env_logger::init();

    let msisdn_str = std::env::var("SMS_RECIPIENT".to_string())
        .expect("SMS_RECIPIENT should contain the number without prefix");
    let msisdn: Msisdn = Msisdn::from_str(msisdn_str.as_str())
        .expect("SMS_RECIPIENT did not contain a valid number");

    info!("example: sending a message");
    let sendable = sms::send::SendParameters::builder()
        .payload(
            PayloadType::Sms,
            Payload::Text("fun".to_string()),
            PayloadEncoding::Auto,
        )
        .origin(AlphaNumeric("inbox".to_string()).into())
        .add_recipient(msisdn.into())
        //.add_recipient(Recipient::new())
        .build();

    let accesskey = AccessKey::from_env()?;
    let fut = RequestSend::new(&sendable, &accesskey);
    let fut = fut.and_then(|sent_msg: Message| {
        info!("{:?}", sent_msg);
        futures::future::ok(())
    });
    let mut core = tokio_core::reactor::Core::new().unwrap();
    core.run(fut.map(|_| ()))
}

特性

目前计划的功能仅包括发送短信和查询短信状态。

路线图

  • 为所有相关数据类型实现serde
  • 往返解码编码测试
  • 使用 crate serde_plaintrait ToStringtrait FromStr 实现,用于查询过滤和负载www urlencode的对象
  • 基于 hyper.rs 的SMS发送和检索的future
  • 使用 tokio 作为执行器的发送短信示例
  • 列出SMS的future
  • 使用 tokio 作为执行器的列出SMS示例
  • 编写文档
  • 基于接收示例的短信接收通知回调的future
  • 使用 hyper (因此隐式地使用 tokio) 作为执行器的回调示例
  • 将所有服务API返回的错误转换为类型错误
  • 改进错误信息内容
  • 基于运行在 clever cloud (sozu的创作者) 的接收示例创建sms回调通知测试

MessageBird API

* = 未计划,除非外部贡献者站出来

许可证

MIT 或 Apache-2.0

如果您都不适用,请随时通过github问题提出请求。

捐赠

由于我与MessageBird没有任何关联(除了作为他们的客户),如果您能留下一些小费来保持自动的发送/接收例程运行,我将非常高兴。

LiberaPayButton

依赖项

~27MB
~616K SLoC