Telegram is a popular secured instant messenger. They have an open bot platform, this package is a Dart implementation of their bot API allowing you to create your own bot easily.
In order to create a Telegram bot, you need to use @BotFather. Follow the instructions in BotFather, then copy your bot token and you're ready to go.
Initializing 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('short')
.listen((message) => message.reply('This works too!'));
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',
input_message_content: InputTextMessageContent(
message_text: '*pong*', parse_mode: 'MarkdownV2')),
InlineQueryResultArticle(
id: 'ding',
title: 'ding',
input_message_content: InputTextMessageContent(
message_text: '*_dong_*', parse_mode: 'MarkdownV2')),
]));
Please file feature requests and bugs at the issue tracker.