15个版本
0.5.0 | 2020年3月19日 |
---|---|
0.4.0 | 2019年1月17日 |
0.4.0-beta.1 | 2018年12月27日 |
0.3.1 | 2018年12月1日 |
0.0.4 | 2018年9月18日 |
#1130 in 异步
90KB
2.5K SLoC
messagebird-async
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_plain
为trait ToString
和trait 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没有任何关联(除了作为他们的客户),如果您能留下一些小费来保持自动的发送/接收例程运行,我将非常高兴。
依赖项
~27MB
~616K SLoC