Files
go-telegram/examples/polls/README.md
T
lukaszraczylo ac7cae8fa7 Initial release of go-telegram
A fully-generated, strongly-typed Go client for the Telegram Bot API.

* 176 methods + 301 types generated from Bot API v10.0
* 1408 auto-generated tests (8 scenarios per method)
* Typed unions throughout — no 'any' in the public surface
* Pluggable HTTP transport and JSON codec (default goccy/go-json)
* Built-in retry middleware honouring Telegram's retry_after
* Generic dispatcher with filters and conversation handlers
* Self-verifying codegen pipeline (regen → audit → emit → run tests)
* 14 example bots covering common patterns
2026-05-09 13:09:27 +01:00

30 lines
844 B
Markdown

# polls
Create polls and tally answers in real time via `OnPollAnswer`.
## What it shows
- `api.SendPoll` with `[]api.InputPollOption` and `IsAnonymous: false`
- `router.OnPollAnswer` to receive vote updates (`PollAnswer.OptionIds`, `PollAnswer.User`)
- Concurrent-safe in-memory tally with `sync.Mutex`
## Commands
| Command | Description |
|---|---|
| `/poll <question>` | Creates a poll with four preset options (A/B/C/D) |
| `/tally <poll_id>` | Shows current vote counts for a poll |
## Notes
- `OnPollAnswer` only fires for **non-anonymous** polls. For anonymous polls, Telegram does not send user identifiers.
- The poll ID is logged when the poll is created; copy it to use with `/tally`.
- Vote tallies are in-memory and reset on restart.
## Running
```bash
export TELEGRAM_BOT_TOKEN=123456:ABC...
go run ./examples/polls
```