6个版本 (3个稳定版本)
1.0.2 | 2024年4月20日 |
---|---|
1.0.1 | 2024年2月13日 |
1.0.0 | 2023年12月3日 |
0.1.2 | 2021年6月9日 |
0.1.0 | 2021年2月27日 |
#375 in Web编程
每月364次下载
1MB
13K SLoC
LINE消息API SDK for Rust
简介
该Rust语言LINE消息API SDK使您能够轻松地使用LINE消息API开发机器人,您可以在几分钟内创建一个示例机器人。
文档
有关更多信息,请参阅官方API文档。
- 英文: https://developers.line.biz/en/docs/messaging-api/overview/
- 日文: https://developers.line.biz/ja/docs/messaging-api/overview/
要求
此库需要稳定/测试版Rust。
安装
$ cargo add line-bot-sdk-rust
Web框架支持
从请求头中提取 x-line-signature
。
使用 rocket
框架
[dependencies.line-bot-sdk-rust]
version = "1.0.0"
features = ["rocket_support"]
use line_bot_sdk_rust::support::rocket::Signature;
use rocket::{http::Status, post};
#[post("/callback", data = "<body>")]
async fn world(signature: Signature, body: String) -> (Status, &'static str) {
...
}
使用 actix_web
框架
[dependencies.line-bot-sdk-rust]
version = "1.0.0"
features = ["actix_support"]
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<HttpResponse, Error> {
...
}
配置
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());
}
如何使用
LINE消息API使用JSON数据格式。
示例。将正文(&str
)解析为 Result<CallbackRequest, serde_json::Error>。
let request: Result<CallbackRequest, serde_json::Error> = serde_json::from_str(body);
match request {
Err(err) => {
// error handling
},
Ok(req) => {
for e in req.events {
// Processing for various events
}
}
}
EchoBot示例
使用Rocket框架
$ cd examples
$ cargo run --bin rocket
源代码: rocket示例
使用actix_web框架
$ cd examples
$ cargo run --bin actix_web
源代码: actix_web示例
贡献
请做出贡献 😆
许可
Copyright 2023 nanato12
Licensed 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 at
https://apache.ac.cn/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.
依赖项
~15–48MB
~900K SLoC