traq-bot-http-rs

Rust Release crate

traQ BOTのPOSTリクエストをパースするライブラリです。

example

Cargo.toml

```toml

...

[dependencies] axum = "0.6" tokio = { version = "1.0", features = ["full"] } traq-bot-http = "0.1" ```

main.rs

```rust use std::{env, net::SocketAddr};

use axum::{ body::Bytes, extract::State, http::{HeaderMap, StatusCode}, routing::post, Router, };

use traqbothttp::{Event, RequestParser};

[tokio::main]

async fn main() { let verificationtoken = env::var("VERIFICATIONTOKEN").unwrap(); let parser = RequestParser::new(&verificationtoken); let app = Router::new().route("/", post(handler)).withstate(parser); let addr = SocketAddr::from(([127, 0, 0, 1], 8080)); axum::Server::bind(&addr) .serve(app.intomakeservice()) .await .unwrap(); }

async fn handler( State(parser): State, headers: HeaderMap, body: Bytes, ) -> StatusCode { match parser.parse(headers, &body) { Ok(Event::MessageCreated(payload)) => { print!( "{}さんがメッセージを投稿しました。\n内容: {}\n", payload.message.user.displayname, payload.message.text ); StatusCode::NOCONTENT } Ok() => StatusCode::NOCONTENT, Err(err) => { eprintln!("ERROR: {err}"); StatusCode::INTERNALSERVERERROR } } } ```

Contributing

Issue, Pull Requestは大歓迎です。