Telegram BotにはサーバーとWebhookの二つの立ち上げる方法があります。Lambdaはサーバーレスだから、今回はWebhookで使用します。
最初はCargoで新たなプロジェクトを作ります。
cargo new telegram-bot
必要な依存を追加します。
crgo add aws_lambda_events base64 lambda_runtime serde_json serde teloxide-macros tokio teloxide cargo-lambda
zigをインストール
# macos
brew install zig
# lambda cliでzigのインストール方法を出力して
cargo lambda system --install-zig
Telegramのコマンドを宣言します
#[derive(BotCommands, PartialEq, Clone, Debug)]
// いろんなパラメータに対応しています。公式ドキュメントをチェックしてください。
#[command(
rename_rule = "lowercase",
description = "These commands are supported:"
)]
pub enum Command {
#[command(description = "get current user id")]
UserID,
}
Telegramの処理関数を定義します