← ClaudeAtlas

telegramsolid

Read and send messages in the connected Telegram bot's chats via the Telegram Bot API, and help the user finish bot setup. Use when the user asks to send a Telegram message, reply in a chat or group, download a file someone sent, or connect a Telegram bot.
intentic/intentic · ★ 46 · AI & Automation · score 82
Install: claude install-skill intentic/intentic
# Telegram (connected) Authenticated with a bot token in `$TELEGRAM_BOT_TOKEN`. Talk to the Bot API with `curl`. Base URL: `https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN`, the token is IN the path, so never paste a constructed URL anywhere it could be read; always build it from the variable. Every method accepts `POST` with a JSON body and answers `{"ok":true,"result":…}` or `{"ok":false,"error_code":…,"description":"…"}`. Check `.ok`: a 400 with a plain-English `description` is how Telegram reports almost everything. ## Setup (do this when no bot exists yet) There is no app review and no public URL. In Telegram, message **@BotFather**: 1. `/newbot` → a display name, then a username ending in `bot` (e.g. `acme_intentic_bot`). 2. Copy the HTTP API token it prints and paste it onto the Telegram capability. 3. For a group: add the bot to the group. By default a bot in a group sees **only** messages that `@mention` it or reply to it: that is Telegram's privacy mode. To let it read everything, `/setprivacy` → pick the bot → `Disable`, then remove and re-add it to the group. 4. Nothing else. A private chat works from the first message the user sends. Confirm it landed: `curl -s "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/getMe" | jq '.result | {id, username}'` ## Common commands - Send a message (`<CHAT_ID>` is a number, negative for groups; a public channel can be `"@channelname"`): `curl -s -X POST -H "Content-Type: application/json" -d '{"chat_id":<CHAT_ID