Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nanato12/line-bot-sdk-rust
LINE Messaging API SDK for Rust
https://github.com/nanato12/line-bot-sdk-rust
bot line line-bot line-bot-sdk linebot messaging-api rust sdk
Last synced: about 2 months ago
JSON representation
LINE Messaging API SDK for Rust
- Host: GitHub
- URL: https://github.com/nanato12/line-bot-sdk-rust
- Owner: nanato12
- License: apache-2.0
- Created: 2021-02-20T12:21:43.000Z (almost 4 years ago)
- Default Branch: develop
- Last Pushed: 2024-04-20T06:24:23.000Z (9 months ago)
- Last Synced: 2024-11-08T19:52:59.693Z (3 months ago)
- Topics: bot, line, line-bot, line-bot-sdk, linebot, messaging-api, rust, sdk
- Language: Rust
- Homepage: https://crates.io/crates/line-bot-sdk-rust
- Size: 446 KB
- Stars: 33
- Watchers: 4
- Forks: 14
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# LINE Messaging API SDK for Rust
## Introduction
The LINE Messaging API SDK for Rust makes it easy to develop bots using LINE Messaging API, and you can create a sample bot within minutes.
## Documentation
See the official API documentation for more information.
- English:
- Japanese:## Requirements
This library requires stable/beta Rust.
## Installation
```bash
$ cargo add line-bot-sdk-rust
```## Web framework support
Extract `x-line-signature` from the request header.
### Use `rocket` framework
```toml
[dependencies.line-bot-sdk-rust]
version = "1.0.0"
features = ["rocket_support"]
``````rust
use line_bot_sdk_rust::support::rocket::Signature;
use rocket::{http::Status, post};#[post("/callback", data = "")]
async fn world(signature: Signature, body: String) -> (Status, &'static str) {
...
}
```### Use `actix_web` framework
```toml
[dependencies.line-bot-sdk-rust]
version = "1.0.0"
features = ["actix_support"]
``````rust
use actix_web::{post, web, Error, HttpResponse};
use line_bot_sdk_rust::support::actix::Signature;#[post("/callback")]
async fn callback(signature: Signature, bytes: web::Bytes) -> Result {
...
}
```## Configuration
```rust
use line_bot_sdk_rust::client::LINE;
use std::env;fn main() {
let access_token: &str =
&env::var("LINE_CHANNEL_ACCESS_TOKEN").expect("Failed to get LINE_CHANNEL_ACCESS_TOKEN");let line = LINE::new(access_token.to_string());
}
```## How to use
The LINE Messaging API uses the JSON data format.
Example. Parse body (`&str`) into Result.
```rust
let request: Result = serde_json::from_str(body);
``````rust
match request {
Err(err) => {
// error handling
},
Ok(req) => {
for e in req.events {
// Processing for various events
}
}
}
```## EchoBot examples
### with Rocket framework
```bash
$ cd examples
$ cargo run --bin rocket
```source: [rocket example](./examples/rocket_example/src/main.rs)
### with actix_web framework
```bash
$ cd examples
$ cargo run --bin actix_web
```source: [actix_web example](./examples/actix_web_example/src/main.rs)
## Contributing
Please make a contribution 😆
## License
```plain
Copyright 2023 nanato12Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
```