mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI-examples.git
synced 2026-08-29 12:26:25 +00:00
update readmes
This commit is contained in:
50
GuestQueryBot/README.md
Normal file
50
GuestQueryBot/README.md
Normal file
@@ -0,0 +1,50 @@
|
||||
# GuestQueryBot
|
||||
|
||||
Demonstrates guest queries through long polling in chats where the bot is not a member.
|
||||
|
||||
## Behavior
|
||||
|
||||
At startup, the bot calls `getMe` and prints its bot information and the value of
|
||||
`supportsGuestQueries`.
|
||||
|
||||
For each guest request, it prints the query ID, caller, chat, and content, then
|
||||
answers with an inline article whose message contains:
|
||||
|
||||
```text
|
||||
Guest mode reply
|
||||
Query ID: <guest-query-id>
|
||||
```
|
||||
|
||||
For ordinary content messages carrying guest-call metadata, the bot also replies
|
||||
with the initiating user's name and/or the public chat's title. Every received
|
||||
update is printed to standard output. The bot defines no commands.
|
||||
|
||||
## Setup and permissions
|
||||
|
||||
1. Create a bot and obtain its token; keep the token private.
|
||||
2. Enable guest queries in BotFather so that `supports_guest_queries` is enabled.
|
||||
3. For ordinary messages outside guest mode, add the bot to the relevant chat and
|
||||
allow it to send messages there.
|
||||
|
||||
The guest-query flow does not require the bot to be a chat member. This example
|
||||
uses no admin-only methods and does not configure a webhook.
|
||||
|
||||
## Run
|
||||
|
||||
From the repository root:
|
||||
|
||||
```bash
|
||||
./gradlew :GuestQueryBot:run --args="BOT_TOKEN"
|
||||
```
|
||||
|
||||
The first argument is the required bot token. Optional, case-sensitive flags may
|
||||
follow it in either order:
|
||||
|
||||
- `debug` enables formatted library logging on standard output;
|
||||
- `testServer` connects to Telegram's Bot API test environment.
|
||||
|
||||
For example:
|
||||
|
||||
```bash
|
||||
./gradlew :GuestQueryBot:run --args="BOT_TOKEN debug testServer"
|
||||
```
|
||||
@@ -19,19 +19,12 @@ import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
|
||||
/**
|
||||
* This bot demonstrates guest mode support introduced in Telegram Bot API.
|
||||
* Starts the long-polling guest-query example.
|
||||
*
|
||||
* Guest mode allows bots to receive messages and reply within chats they are not a member of.
|
||||
* To enable guest queries for your bot, set `supports_guest_queries` in BotFather settings.
|
||||
*
|
||||
* Key concepts demonstrated:
|
||||
* - `supportsGuestQueries` field on the bot itself (via getMe())
|
||||
* - `GuestMessageUpdate` — a new update type for messages sent in guest mode
|
||||
* - `guestQueryId` — unique ID used to answer the guest query
|
||||
* - `guestBotCallerUser` — the user who initiated the guest query
|
||||
* - `guestBotCallerChat` — the chat from which the guest query was sent
|
||||
* - `answerGuestQuery` / `reply(GuestMessage, InlineQueryResult)` — how to respond
|
||||
* - `SentGuestMessage` — the result returned after answering, containing the inline_message_id
|
||||
* The first element of [args] must be the bot token. The optional, case-sensitive
|
||||
* values `debug` and `testServer` enable diagnostic logging and Telegram's test
|
||||
* environment, respectively. Guest requests receive an inline article response;
|
||||
* regular content messages with guest-caller metadata receive an acknowledgement.
|
||||
*/
|
||||
suspend fun main(vararg args: String) {
|
||||
val botToken = args.first()
|
||||
|
||||
Reference in New Issue
Block a user