A clean implementation of Telegram bot API allows you to create your own easily.
In order to create a Telegram bot, you need to talk to @BotFather generating a bot token. Simply follow the instructions.
Initialising the bot:
import 'package:teledart/teledart.dart';
import 'package:teledart/telegram.dart';
void main() {
var BOT_TOKEN = 'YOUR_BOT_TOKEN_FROM_BOT_FATHER';
final username = (await Telegram(BOT_TOKEN).getMe()).username;
var teledart = TeleDart(BOT_TOKEN, Event(username!));
teledart.start()
}
A simple usage example:
teledart.onMessage(keyword: 'Fight for freedom')
.listen((message) => message.reply('Stand with Hong Kong'));
Using bot commands:
// Long way
teledart.onMessage(entityType: 'bot_command', keyword: 'start')
.listen((message) => teledart.sendMessage(message.chat.id, 'Hello TeleDart!'));
// Short way (recommended)
teledart.onCommand('glory')
.listen((message) => message.reply('to Ukraine!'));
Modifying Stream:
teledart
.onMessage(keyword: 'dart')
.where((message) => message.text?.contains('telegram') ?? false)
.listen((message) => message.replyPhoto(
// io.File('example/dash_paper_plane.png'),
'https://raw.githubusercontent.com/DinoLeung/TeleDart/master/example/dash_paper_plane.png',
caption: 'This is how the Dart Bird and Telegram are met'));
Inline mode example:
teledart.onInlineQuery().listen((inlineQuery) => inlineQuery.answer([
InlineQueryResultArticle(
id: 'ping',
title: 'ping',
inputMessageContent: InputTextMessageContent(
messageText: '*pong*', parseMode: 'MarkdownV2')),
InlineQueryResultArticle(
id: 'ding',
title: 'ding',
inputMessageContent: InputTextMessageContent(
messageText: '*_dong_*', parseMode: 'MarkdownV2')),
]));
Please file feature requests and bugs at the issue tracker.