fcm 0.8.1

An API to talk to FCM (Firebase Cloud Messaging) in Rust
Documentation
#[macro_use]
extern crate serde_derive;

use argparse::{ArgumentParser, Store};
use fcm::{Client, MessageBuilder};

#[derive(Serialize)]
struct CustomData {
    message: &'static str,
}

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
    pretty_env_logger::init();

    let mut device_token = String::new();
    let mut api_key = String::new();

    {
        let mut ap = ArgumentParser::new();
        ap.set_description("A simple FCM notification sender");
        ap.refer(&mut device_token)
            .add_option(&["-t", "--device_token"], Store, "Device token");
        ap.refer(&mut api_key)
            .add_option(&["-k", "--api_key"], Store, "API key");
        ap.parse_args_or_exit();
    }

    let client = Client::new();
    let data = CustomData { message: "howdy" };

    let mut builder = MessageBuilder::new(&api_key, &device_token);
    builder.data(&data)?;

    let response = client.send(builder.finalize()).await?;
    println!("Sent: {:?}", response);

    Ok(())
}