Send & Listen
Part of the Examples. Send a message and listen for new ones with client.events.onMessage.
Source: example/08_send_and_listen.dart
// ignore_for_file: file_names, avoid_print
// ============================================================================
// 08 — SEND AND LISTEN
// ============================================================================
//
// Basic messaging, plus the live event stream — ptgc's typed view over
// Telegram's raw update feed. Sends yourself a message, then listens for
// 60 seconds, printing anything that happens.
//
// HOW TO RUN:
// dart run example/08_send_and_listen.dart
// ============================================================================
import 'package:ptgc/ptgc.dart';
Future<void> main() async {
final client = TelegramClient.fromEnv();
await client.connect();
if (!client.isSignedIn) {
print('Not logged in — run 01_login.dart first.');
await client.disconnect();
return;
}
// Message yourself — the "Saved Messages" chat, addressed by your own ID.
final selfId = client.userId!;
await client.messages.sendMessage(selfId, 'Hello from ptgc!');
print('Sent a message to Saved Messages.');
final subscription = client.events.listen((event) {
switch (event) {
case NewMessageEvent():
print('New message in ${event.chatId}: ${event.text}');
case MemberStatusChangedEvent():
print(
'Member ${event.userId} changed in ${event.chatId} (by ${event.actorId})');
}
});
print(
'Listening for 60s — send yourself a message on Telegram to see it appear...');
await Future<void>.delayed(const Duration(seconds: 60));
await subscription.cancel();
await client.disconnect();
}
Run it from the package root:
dart run example/08_send_and_listen.dart