搜尋套件、儲存庫與 APP 分類

GitHub 儲存庫KaikyuLotus/dart-telegram-bot

dart-telegram-bot

Telegram 機器人 API 的簡單純包裝

dart-telegram-bot 專案封面
星標
29
分支
8
最近推送(UTC)
2025年1月2日
專案狀態
未封存

原始 README

以下為英文專案原文快照,最新內容請造訪 GitHub。

Dart Telegram Bot Dart CI/CD

Dart Telegram Bot is a Dart wrapper for Telegram bot API.
It is compatible with Native, Flutter and JS.

Bot API Version Dart Version

Using Dart Telegram Bot is straightforward, here's an example echo bot:

import 'package:dart_telegram_bot/dart_telegram_bot.dart';
import 'package:dart_telegram_bot/telegram_entities.dart';

void main() {
  Bot(
    // Insert your bot token here
    token: 'BOT_TOKEN',
    // Once the bot is ready this function will be called
    // You can start the bot here
    onReady: (bot) => bot.start(clean: true),
    // Register a new callback for new updates
  ).onUpdate((bot, update) async {
    // Send a message to the update chat with the received message
    bot.sendMessage(ChatID(update.message!.chat.id), update.message!.text!);
  });
}

Bot start may fail when bot token is invalid or with network issues.
To handle such cases follow the next example:

void main() {
  Bot(
    token: 'BOT_TOKEN',
    onReady: (bot) => bot.start(clean: true),
    // Handle start failure
    onStartFailed: (bot, e, s) => print('Start failed'),
  );
}

Also, you may want to disable or allow only certain update types.
To do so follow the next example:

void main() {
  Bot(
    token: 'BOT_TOKEN',
    onReady: (bot) => bot.start(clean: true),
    // Either allow all types but some
    allowedUpdates: UpdateType.allBut([UpdateType.channelPost]),
    // OR allow only a list of types
    allowedUpdates: [UpdateType.message, UpdateType.editedMessage],
  );
}

Dart Telegram Bot also supports a more OOP approach. The following example is still an echo bot, this time with OOP approach:

class MyBot extends Bot {

  MyBot() : super(token: 'BOT_TOKEN') {
    onUpdate(updateHandler);
  }

  @override
  Future onReady(Bot bot) => bot.start(clean: true);

  @override
  Future onStartFailed(Bot bot, Object err, StackTrace st) async {
    print('Bot failed to start: $err');
  }

  Future updateHandler(Bot bot, Update update) async {
    bot.sendMessage(ChatID(update.message!.chat.id), update.message!.text!);
  }
}

Written by Kaikyu Lotus (Telegram)

Kaikyu GitHub avatar
GitHub 作者

Kaikyu ↗

Weeb developer

Italy
語言Dart

分類

使用的依賴

依賴清單 4 項

如何選擇適合專案的儲存庫?

先依使用情境篩選,再比較專案活躍情況,最後到原始儲存庫確認使用要求。

  1. 透過儲存庫名稱、作者或描述搜尋,再依技術分類縮小範圍。
  2. 綜合星標、分支與最近推送比較專案;星標反映社群關注,不保證品質。
  3. 使用前在 GitHub 確認 README、授權條款與 Issues。

來源與維護

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗