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编程

Download history 47/week @ 2024-04-08 141/week @ 2024-04-15 13/week @ 2024-04-22 7/week @ 2024-05-20 22/week @ 2024-06-03

每月364次下载

Apache-2.0

1MB
13K SLoC

LINE消息API SDK for Rust

简介

该Rust语言LINE消息API SDK使您能够轻松地使用LINE消息API开发机器人,您可以在几分钟内创建一个示例机器人。

文档

有关更多信息,请参阅官方API文档。

要求

此库需要稳定/测试版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