mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI-examples.git
synced 2026-09-02 06:09:08 +00:00
2.3 KiB
2.3 KiB
EphemeralMessagesBot
Demonstrates Telegram Bot API 10.2 and 10.3 ephemeral messages: group messages that Telegram shows only to one receiver.
Behavior
/ephemeralreplies with a Reveal a secret inline button. The command is registered with Telegram as an ephemeral command.- Pressing the button (
revealcallback data) usesEphemeralMessageParametersto replace the callback-query message with a personal rich message visible only to the user who pressed it. After three seconds the bot replaces its text with typed rich blocks, then deletes it three seconds later. /ephemeral_photowaits for a photo from the same user and chat, sends it back ephemerally by its Telegram file ID, downloads it, and edits the ephemeral media using a new multipart upload. A second edit setsshowCaptionAboveMedia = true./ephemeral_live_photowaits for a Live Photo, sends it ephemerally by existing file IDs, then downloads and re-uploads both its main file and secondaryphotofile in oneeditEphemeralMessageMediarequest. This exercises ktgbotapi 37.0.0's secondary multipart attachment collection.- When the bot receives an ephemeral content message, it sends two ephemeral replies: one through the
general
replyAPI and one through the explicitreplyToEphemeralAPI. The explicit form also usesEphemeralMessageParameters. - Updates and basic bot information are printed to standard output.
Setup
Create a bot token, keep it secret, and add the bot to a group. The bot must be allowed to send messages there; this example does not request or validate group permissions itself. Use a Telegram environment that supports ephemeral messages. The photo demonstrations download all selected media into memory before uploading it again.
Run
From the repository root, pass the token as the first application argument:
./gradlew :EphemeralMessagesBot:run --args="BOT_TOKEN"
Optional, case-sensitive arguments may follow the token:
debugenables formatted library logging on standard output.testServerconnects the bot to Telegram's test server.
For example:
./gradlew :EphemeralMessagesBot:run --args="BOT_TOKEN debug testServer"
The token is required; starting without it fails before polling begins. Stop the bot with Ctrl+C.