mirror of
https://github.com/lukaszraczylo/go-telegram.git
synced 2026-06-05 22:43:59 +00:00
ac7cae8fa7
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
polls
Create polls and tally answers in real time via OnPollAnswer.
What it shows
api.SendPollwith[]api.InputPollOptionandIsAnonymous: falserouter.OnPollAnswerto 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
OnPollAnsweronly 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
export TELEGRAM_BOT_TOKEN=123456:ABC...
go run ./examples/polls