{"id":"04336930-8d3a-408d-905c-61dfd39ae827","shortId":"Q24dfP","kind":"skill","title":"telegram","tagline":"Integracao completa com Telegram Bot API. Setup com BotFather, mensagens, webhooks, inline keyboards, grupos, canais. Boilerplates Node.js e Python.","description":"# Telegram Bot API - Integracao Profissional\n\n## Overview\n\nIntegracao completa com Telegram Bot API. Setup com BotFather, mensagens, webhooks, inline keyboards, grupos, canais. Boilerplates Node.js e Python.\n\n## When to Use This Skill\n\n- When the user mentions \"telegram\" or related topics\n- When the user mentions \"bot telegram\" or related topics\n- When the user mentions \"telegram bot\" or related topics\n- When the user mentions \"api telegram\" or related topics\n- When the user mentions \"chatbot telegram\" or related topics\n- When the user mentions \"mensagem telegram\" or related topics\n\n## Do Not Use This Skill When\n\n- The task is unrelated to telegram\n- A simpler, more specific tool can handle the request\n- The user needs general-purpose assistance without domain expertise\n\n## How It Works\n\nSkill para implementar bots profissionais no Telegram usando a Bot API oficial. Suporta Node.js/TypeScript e Python.\n\n## Overview\n\nA Telegram Bot API permite criar bots que interagem com usuarios via mensagens, comandos, inline keyboards, pagamentos e muito mais. Bots sao criados pelo @BotFather e autenticados via token unico.\n\n**Base URL:** `https://api.telegram.org/bot<TOKEN>/METHOD_NAME`\n**Metodos HTTP:** GET e POST\n**Formatos de parametros:** query string, application/x-www-form-urlencoded, application/json, multipart/form-data (uploads)\n**Limite de arquivos:** 50MB download, 20MB upload (via multipart), 50MB via URL\n\n**Portas suportadas para webhooks:** 443, 80, 88, 8443\n\n**Pre-requisitos:**\n- Conta no Telegram\n- Bot criado via @BotFather (fornece o token)\n- Token no formato: `123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11`\n\nSe o usuario nao tem um bot criado, oriente a conversar com @BotFather no Telegram e enviar `/newbot`.\n\n---\n\n## Decision Tree\n\n```\nO usuario precisa criar um bot?\n├── SIM → Secao \"Setup com BotFather\" abaixo\n└── NAO → Qual linguagem?\n    ├── Node.js/TypeScript\n    └── Python\n    → O que quer fazer?\n       ├── Enviar mensagens → Secao \"Tipos de Mensagem\"\n       ├── Receber mensagens → Secao \"Receber Updates\"\n       ├── Teclados interativos → Secao \"Keyboards\"\n       ├── Gerenciar grupos/canais → references/chat-management.md\n       ├── Webhook setup → references/webhook-setup.md\n       ├── Inline mode → references/advanced-features.md\n       ├── Pagamentos → references/advanced-features.md\n       ├── Bot de atendimento com IA → Secao \"Automacao com IA\"\n       └── Referencia completa da API → references/api-reference.md\n```\n\nPara iniciar um projeto do zero com boilerplate pronto:\n```bash\npython scripts/setup_project.py --language nodejs --path ./meu-bot-telegram\n\n## Ou\n\npython scripts/setup_project.py --language python --path ./meu-bot-telegram\n```\n\nPara testar se o token do bot funciona:\n```bash\npython scripts/test_bot.py --token \"SEU_TOKEN\"\n```\n\nPara enviar uma mensagem de teste:\n```bash\npython scripts/send_message.py --token \"SEU_TOKEN\" --chat-id \"CHAT_ID\" --text \"Hello!\"\n```\n\n---\n\n## Setup Com Botfather\n\n1. Abra o Telegram e busque @BotFather\n2. Envie `/newbot`\n3. Escolha nome de exibicao (ex: \"Meu Bot Incrivel\")\n4. Escolha username (deve terminar com \"bot\", ex: `meu_incrivel_bot`)\n5. BotFather retorna o token - guarde com seguranca\n6. Comandos uteis do BotFather:\n   - `/setdescription` - descricao do bot\n   - `/setabouttext` - texto \"sobre\" do bot\n   - `/setuserpic` - foto de perfil\n   - `/setcommands` - lista de comandos\n   - `/mybots` - gerenciar bots existentes\n   - `/setinline` - habilitar inline mode\n   - `/setprivacy` - modo privacidade em grupos\n\n---\n\n## Variaveis De Ambiente\n\n```env\nTELEGRAM_BOT_TOKEN=123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11\n```\n\n## Node.Js/Typescript\n\n```typescript\n// Instalar: npm install node-telegram-bot-api dotenv\n// Para TypeScript: npm install -D @types/node-telegram-bot-api typescript\nimport TelegramBot from 'node-telegram-bot-api';\nimport dotenv from 'dotenv';\ndotenv.config();\n\nconst bot = new TelegramBot(process.env.TELEGRAM_BOT_TOKEN!, { polling: true });\n\nbot.onText(/\\/start/, (msg) => {\n  bot.sendMessage(msg.chat.id, 'Ola! Eu sou seu bot. Como posso ajudar?');\n});\n\nbot.on('message', (msg) => {\n  if (msg.text && !msg.text.startsWith('/')) {\n    bot.sendMessage(msg.chat.id, `Voce disse: ${msg.text}`);\n  }\n});\n```\n\n## Python\n\n```python\n\n## Instalar: Pip Install Python-Telegram-Bot Python-Dotenv\n\nimport os\nfrom dotenv import load_dotenv\nfrom telegram import Update\nfrom telegram.ext import Application, CommandHandler, MessageHandler, filters, ContextTypes\n\nload_dotenv()\n\nasync def start(update: Update, context: ContextTypes.DEFAULT_TYPE):\n    await update.message.reply_text('Ola! Eu sou seu bot. Como posso ajudar?')\n\nasync def echo(update: Update, context: ContextTypes.DEFAULT_TYPE):\n    await update.message.reply_text(f'Voce disse: {update.message.text}')\n\napp = Application.builder().token(os.getenv('TELEGRAM_BOT_TOKEN')).build()\napp.add_handler(CommandHandler('start', start))\napp.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, echo))\napp.run_polling()\n```\n\n## Sem Biblioteca (Http Puro)\n\n```python\nimport requests\n\nTOKEN = \"SEU_TOKEN\"\nBASE = f\"https://api.telegram.org/bot{TOKEN}\"\n\n## Verificar Bot\n\nr = requests.get(f\"{BASE}/getMe\")\nprint(r.json())\n\n## Enviar Mensagem\n\nr = requests.post(f\"{BASE}/sendMessage\", json={\n    \"chat_id\": \"CHAT_ID\",\n    \"text\": \"Hello from pure HTTP!\",\n    \"parse_mode\": \"HTML\"\n})\nprint(r.json())\n```\n\n---\n\n## Tipos De Mensagem\n\nO Telegram suporta diversos tipos de conteudo. Todos os metodos aceitam `chat_id`, `reply_parameters` (para responder), `reply_markup` (para keyboards), `disable_notification` e `protect_content`.\n\n## Html (Recomendado)\n\nawait bot.send_message(\n    chat_id=chat_id,\n    text=\"<b>Negrito</b>, <i>italico</i>, <code>codigo</code>, <a href='https://example.com'>link</a>\",\n    parse_mode=\"HTML\"\n)\n\n## Markdownv2 (Escapar Caracteres Especiais: _ * [ ] ( ) ~ ` > # + - = | { } . !)\n\nawait bot.send_message(\n    chat_id=chat_id,\n    text=\"*Negrito*, _italico_, `codigo`, [link](https://example\\\\.com)\",\n    parse_mode=\"MarkdownV2\"\n)\n```\n\n## Foto (Por Url, File_Id Ou Upload)\n\nawait bot.send_photo(chat_id, photo=\"https://example.com/img.jpg\", caption=\"Legenda aqui\")\n\n## Documento\n\nawait bot.send_document(chat_id, document=open(\"relatorio.pdf\", \"rb\"), caption=\"Relatorio mensal\")\n\n## Video\n\nawait bot.send_video(chat_id, video=\"https://example.com/video.mp4\", caption=\"Assista!\")\n\n## Audio\n\nawait bot.send_audio(chat_id, audio=open(\"musica.mp3\", \"rb\"), title=\"Minha Musica\")\n\n## Voz (Ogg Com Opus)\n\nawait bot.send_voice(chat_id, voice=open(\"audio.ogg\", \"rb\"))\n\n## Localizacao\n\nawait bot.send_location(chat_id, latitude=-23.5505, longitude=-46.6333)\n\n## Contato\n\nawait bot.send_contact(chat_id, phone_number=\"+5511999999999\", first_name=\"Joao\")\n\n## Enquete\n\nawait bot.send_poll(\n    chat_id, question=\"Qual sua cor favorita?\",\n    options=[\"Azul\", \"Verde\", \"Vermelho\"],\n    is_anonymous=False\n)\n\n## Grupo De Midias\n\nawait bot.send_media_group(chat_id, media=[\n    InputMediaPhoto(\"url1\", caption=\"Foto 1\"),\n    InputMediaPhoto(\"url2\"),\n    InputMediaVideo(\"url3\")\n])\n\n## Acao De Chat (Typing, Upload_Photo, Etc.)\n\nawait bot.send_chat_action(chat_id, action=\"typing\")\n```\n\n## Node.Js Equivalente\n\n```typescript\n// Foto\nbot.sendPhoto(chatId, 'https://example.com/img.jpg', { caption: 'Legenda' });\n\n// Documento\nbot.sendDocument(chatId, fs.createReadStream('relatorio.pdf'), { caption: 'Relatorio' });\n\n// Localizacao\nbot.sendLocation(chatId, -23.5505, -46.6333);\n\n// Enquete\nbot.sendPoll(chatId, 'Qual sua cor favorita?', ['Azul', 'Verde', 'Vermelho']);\n```\n\n---\n\n## Inline Keyboard (Botoes Dentro Da Mensagem)\n\n```python\nfrom telegram import InlineKeyboardButton, InlineKeyboardMarkup\n\nkeyboard = InlineKeyboardMarkup([\n    [InlineKeyboardButton(\"Opcao A\", callback_data=\"opt_a\"),\n     InlineKeyboardButton(\"Opcao B\", callback_data=\"opt_b\")],\n    [InlineKeyboardButton(\"Abrir Site\", url=\"https://example.com\")],\n    [InlineKeyboardButton(\"Compartilhar\", switch_inline_query=\"texto\")]\n])\n\nawait bot.send_message(chat_id, \"Escolha uma opcao:\", reply_markup=keyboard)\n\n## Handler De Callback\n\nasync def button_callback(update: Update, context: ContextTypes.DEFAULT_TYPE):\n    query = update.callback_query\n    await query.answer()  # Importante: sempre responder o callback\n    await query.edit_message_text(f\"Voce escolheu: {query.data}\")\n\napp.add_handler(CallbackQueryHandler(button_callback))\n```\n\n## Reply Keyboard (Teclado Customizado)\n\n```python\nfrom telegram import ReplyKeyboardMarkup, KeyboardButton\n\nkeyboard = ReplyKeyboardMarkup(\n    [[KeyboardButton(\"Enviar Localizacao\", request_location=True)],\n     [KeyboardButton(\"Enviar Contato\", request_contact=True)],\n     [\"Opcao 1\", \"Opcao 2\"]],\n    resize_keyboard=True,\n    one_time_keyboard=True\n)\n\nawait bot.send_message(chat_id, \"Escolha:\", reply_markup=keyboard)\n```\n\n## Remover Teclado\n\n```python\nfrom telegram import ReplyKeyboardRemove\nawait bot.send_message(chat_id, \"Teclado removido\", reply_markup=ReplyKeyboardRemove())\n```\n\n---\n\n## Receber Updates\n\nExistem duas formas de receber updates: **Long Polling** e **Webhooks**.\n\n## Long Polling (Desenvolvimento)\n\nMais simples, ideal para desenvolvimento. O bot faz requisicoes periodicas ao servidor do Telegram.\n\n```python\n\n## Python-Telegram-Bot Ja Faz Isso Automaticamente\n\napp.run_polling(allowed_updates=Update.ALL_TYPES)\n```\n\n```typescript\n// node-telegram-bot-api com polling\nconst bot = new TelegramBot(token, { polling: true });\n```\n\n## Webhooks (Producao)\n\nPara producao, webhooks sao mais eficientes. O Telegram envia updates via POST para sua URL HTTPS.\n\nLeia `references/webhook-setup.md` para configuracao completa com Express, Flask, ngrok e deploy.\n\nSetup rapido:\n\n```python\n\n## Flask Webhook\n\nfrom flask import Flask, request\nimport requests\n\napp = Flask(__name__)\nTOKEN = \"SEU_TOKEN\"\nBASE = f\"https://api.telegram.org/bot{TOKEN}\"\n\n@app.route(f\"/webhook/{TOKEN}\", methods=[\"POST\"])\ndef webhook():\n    update = request.get_json()\n    if \"message\" in update and \"text\" in update[\"message\"]:\n        chat_id = update[\"message\"][\"chat\"][\"id\"]\n        text = update[\"message\"][\"text\"]\n        requests.post(f\"{BASE}/sendMessage\", json={\n            \"chat_id\": chat_id,\n            \"text\": f\"Recebi: {text}\"\n        })\n    return \"OK\", 200\n\n## Registrar Webhook\n\nrequests.post(f\"{BASE}/setWebhook\", json={\n    \"url\": \"https://seu-dominio.com/webhook/\" + TOKEN,\n    \"allowed_updates\": [\"message\", \"callback_query\"],\n    \"secret_token\": \"seu_secret_seguro_aqui\"\n})\n```\n\n---\n\n## Comandos Do Bot\n\nRegistre comandos para aparecerem no menu do Telegram:\n\n```python\nfrom telegram import BotCommand\n\nawait bot.set_my_commands([\n    BotCommand(\"start\", \"Iniciar o bot\"),\n    BotCommand(\"help\", \"Ver comandos disponiveis\"),\n    BotCommand(\"settings\", \"Configuracoes\"),\n    BotCommand(\"status\", \"Ver status do servico\"),\n])\n```\n\nVia HTTP:\n```bash\ncurl -X POST \"https://api.telegram.org/bot$TOKEN/setMyCommands\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"commands\":[{\"command\":\"start\",\"description\":\"Iniciar o bot\"},{\"command\":\"help\",\"description\":\"Ajuda\"}]}'\n```\n\n---\n\n## Automacao Com Ia\n\nPadrao para bot de atendimento com IA (Claude, GPT, etc.):\n\n```python\nfrom telegram import Update\nfrom telegram.ext import Application, MessageHandler, filters, ContextTypes\nimport anthropic  # ou openai\n\nclient = anthropic.Anthropic()\nuser_conversations = {}  # chat_id -> messages history\n\nasync def ai_response(update: Update, context: ContextTypes.DEFAULT_TYPE):\n    chat_id = update.message.chat_id\n    user_text = update.message.text\n\n    # Indicar que esta digitando\n    await context.bot.send_chat_action(chat_id, \"typing\")\n\n    # Manter historico\n    if chat_id not in user_conversations:\n        user_conversations[chat_id] = []\n\n    user_conversations[chat_id].append({\"role\": \"user\", \"content\": user_text})\n\n    # Chamar IA\n    response = client.messages.create(\n        model=\"claude-sonnet-4-20250514\",\n        max_tokens=1024,\n        system=\"Voce e um assistente prestativo. Responda em portugues.\",\n        messages=user_conversations[chat_id]\n    )\n\n    reply = response.content[0].text\n    user_conversations[chat_id].append({\"role\": \"assistant\", \"content\": reply})\n\n    # Limitar historico (ultimas 20 mensagens)\n    if len(user_conversations[chat_id]) > 20:\n        user_conversations[chat_id] = user_conversations[chat_id][-20:]\n\n    await update.message.reply_text(reply)\n\napp = Application.builder().token(TOKEN).build()\napp.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, ai_response))\napp.run_polling()\n```\n\n---\n\n## Editar Texto\n\nawait bot.edit_message_text(\n    chat_id=chat_id,\n    message_id=msg.message_id,\n    text=\"Texto atualizado!\",\n    parse_mode=\"HTML\"\n)\n\n## Editar Markup (Botoes)\n\nawait bot.edit_message_reply_markup(\n    chat_id=chat_id,\n    message_id=msg.message_id,\n    reply_markup=new_keyboard\n)\n\n## Deletar Mensagem\n\nawait bot.delete_message(chat_id=chat_id, message_id=msg.message_id)\n\n## Encaminhar Mensagem\n\nawait bot.forward_message(\n    chat_id=dest_chat_id,\n    from_chat_id=source_chat_id,\n    message_id=msg.message_id\n)\n```\n\n---\n\n## Tratamento De Erros\n\n```python\nfrom telegram.error import TelegramError, BadRequest, TimedOut, NetworkError\n\nasync def safe_send(bot, chat_id, text, **kwargs):\n    \"\"\"Envio com retry e tratamento de erros.\"\"\"\n    max_retries = 3\n    for attempt in range(max_retries):\n        try:\n            return await bot.send_message(chat_id, text, **kwargs)\n        except TimedOut:\n            if attempt < max_retries - 1:\n                await asyncio.sleep(2 ** attempt)\n                continue\n            raise\n        except BadRequest as e:\n            if \"chat not found\" in str(e).lower():\n                print(f\"Chat {chat_id} nao encontrado\")\n                return None\n            raise\n        except NetworkError:\n            if attempt < max_retries - 1:\n                await asyncio.sleep(2 ** attempt)\n                continue\n            raise\n```\n\n---\n\n## Rate Limits\n\n- **Mensagens em chat privado:** ~30 msg/segundo\n- **Mensagens em grupo:** ~20 msg/minuto por grupo\n- **Broadcast geral:** ~30 msg/segundo no total\n- **Bulk notifications:** use `asyncio.sleep(0.05)` entre envios para evitar flood\n\nSe receber erro 429 (Too Many Requests), respeite o `retry_after` retornado.\n\n---\n\n## Referencia De Arquivos\n\n| Topico | Arquivo |\n|--------|---------|\n| Setup de webhooks | `references/webhook-setup.md` |\n| Gerenciamento de chats | `references/chat-management.md` |\n| Recursos avancados | `references/advanced-features.md` |\n| Referencia completa da API | `references/api-reference.md` |\n| Boilerplate Node.js | `assets/boilerplate/nodejs/` |\n| Boilerplate Python | `assets/boilerplate/python/` |\n| Exemplos de payloads | `assets/examples/` |\n\n## Best Practices\n\n- Provide clear, specific context about your project and requirements\n- Review all suggestions before applying them to production code\n- Combine with other complementary skills for comprehensive analysis\n\n## Common Pitfalls\n\n- Using this skill for tasks outside its domain expertise\n- Applying recommendations without understanding your specific context\n- Not providing enough project context for accurate analysis\n\n## Related Skills\n\n- `instagram` - Complementary skill for enhanced analysis\n- `social-orchestrator` - Complementary skill for enhanced analysis\n- `whatsapp-cloud-api` - Complementary skill for enhanced analysis\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["telegram","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity-skills"],"capabilities":["skill","source-sickn33","skill-telegram","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/telegram","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34460 github stars · SKILL.md body (15,733 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T06:51:59.668Z","embedding":null,"createdAt":"2026-04-18T21:46:02.839Z","updatedAt":"2026-04-22T06:51:59.668Z","lastSeenAt":"2026-04-22T06:51:59.668Z","tsv":"'+5511999999999':831 '-20':1459 '-20250514':1408 '-23.5505':820,908 '-46.6333':822,909 '/bot':191,643,1176 '/bot$token/setmycommands':1294 '/getme':651 '/img.jpg':758 '/img.jpg'',':895 '/method_name':192 '/meu-bot-telegram':346,353 '/mybots':450 '/newbot':265,399 '/sendmessage':660,1211 '/setabouttext':437 '/setcommands':446 '/setdescription':433 '/setinline':454 '/setprivacy':458 '/setuserpic':442 '/setwebhook':1229 '/start':518 '/typescript':153,285,477 '/video.mp4':784 '/webhook':1180 '/webhook/':1234 '0':1428 '0.05':1669 '1':390,867,1030,1602,1637 '1024':1411 '123456':243,470 '2':397,1032,1605,1640 '20':1442,1450,1655 '200':1223 '20mb':212 '3':400,1580 '30':1650,1661 '4':409,1407 '429':1678 '443':223 '5':420 '50mb':210,216 '6':428 '80':224 '8443':226 '88':225 'abaixo':279 'abc':245,472 'abc-def1234ghikl-zyx57w2v1u123ew11':244,471 'abra':391 'abrir':949 'acao':872 'accur':1770 'aceitam':689 'action':882,885,1372 'ai':1351,1474 'ajuda':1311 'ajudar':529,592 'allow':1106,1236 'ambient':465 'analysi':1745,1771,1779,1787,1796 'anonym':851 'anthrop':1338 'anthropic.anthropic':1342 'ao':1091 'aparecerem':1253 'api':7,23,32,81,148,160,329,486,502,1115,1706,1791 'api.telegram.org':190,642,1175,1293 'api.telegram.org/bot':189,641,1174 'api.telegram.org/bot$token/setmycommands':1292 'app':608,1166,1464 'app.add':616,621,1000,1469 'app.route':1178 'app.run':627,1104,1476 'append':1393,1434 'appli':1733,1757 'applic':567,1333 'application.builder':609,1465 'application/json':204,1299 'application/x-www-form-urlencoded':203 'aqui':761,1246 'arquivo':209,1689,1691 'ask':1830 'assets/boilerplate/nodejs':1710 'assets/boilerplate/python':1713 'assets/examples':1717 'assist':131,1436 'assista':786 'assistent':1416 'async':574,593,973,1349,1562 'asyncio.sleep':1604,1639,1668 'atendimento':319,1319 'attempt':1582,1599,1606,1634,1641 'atualizado':1494 'audio':787,790,793 'audio.ogg':811 'autenticado':183 'automacao':323,1312 'automaticament':1103 'avancado':1701 'await':582,601,707,726,750,763,776,788,804,814,824,836,856,879,959,985,992,1040,1056,1263,1369,1460,1480,1501,1520,1533,1589,1603,1638 'azul':847,917 'b':943,947 'badrequest':1559,1610 'base':187,639,650,659,1172,1210,1228 'bash':340,362,374,1288 'best':1718 'biblioteca':630 'boilerpl':17,42,338,1708,1711 'bot':6,22,31,63,73,141,147,159,163,177,233,254,273,317,360,407,415,419,436,441,452,468,485,501,509,513,526,549,589,613,646,1087,1099,1114,1119,1249,1271,1307,1317,1566 'bot.delete':1521 'bot.edit':1481,1502 'bot.forward':1534 'bot.on':530 'bot.ontext':517 'bot.send':708,727,751,764,777,789,805,815,825,837,857,880,960,1041,1057,1590 'bot.senddocument':899 'bot.sendlocation':906 'bot.sendmessage':520,536 'bot.sendphoto':891 'bot.sendpoll':911 'bot.set':1264 'botcommand':1262,1267,1272,1277,1280 'botfath':10,35,181,236,260,278,389,396,421,432 'boto':922,1500 'boundari':1838 'broadcast':1659 'build':615,1468 'bulk':1665 'busqu':395 'button':975,1003 'callback':937,944,972,976,991,1004,1239 'callbackqueryhandl':1002 'canai':16,41 'caption':759,772,785,865,896,903 'caracter':724 'chamar':1399 'chat':381,383,662,664,690,710,712,729,731,753,766,779,791,807,817,827,839,860,874,881,883,962,1043,1059,1198,1202,1213,1215,1345,1358,1371,1373,1379,1387,1391,1424,1432,1448,1453,1457,1484,1486,1506,1508,1523,1525,1536,1539,1542,1545,1567,1592,1614,1623,1624,1648,1698 'chat-id':380 'chatbot':90 'chatid':892,900,907,912 'clarif':1832 'claud':1322,1405 'claude-sonnet':1404 'clear':1721,1805 'client':1341 'client.messages.create':1402 'cloud':1790 'code':1737 'codigo':717,736 'com':4,9,29,34,166,259,277,320,324,337,388,414,426,739,802,1116,1148,1313,1320,1572 'comando':170,429,449,1247,1251,1275 'combin':1738 'command':1266,1301,1302,1308 'commandhandl':568,618 'common':1746 'como':527,590 'compartilhar':954 'complementari':1741,1775,1783,1792 'completa':3,28,327,1147,1704 'comprehens':1744 'configuracao':1146 'configuraco':1279 'const':508,1118 'conta':230 'contact':826,1027 'contato':823,1025 'content':704,1297,1396,1437 'content-typ':1296 'conteudo':685 'context':579,598,979,1355,1723,1763,1768 'context.bot.send':1370 'contexttyp':571,1336 'contexttypes.default':580,599,980,1356 'continu':1607,1642 'convers':1344,1384,1386,1390,1423,1431,1447,1452,1456 'conversar':258 'cor':844,915 'criado':179,234,255 'criar':162,271 'criteria':1841 'curl':1289 'customizado':1008 'd':492,1300 'da':328,924,1705 'data':938,945 'de':199,208,295,318,372,403,444,448,464,677,684,854,873,971,1071,1318,1552,1576,1688,1693,1697,1715 'decis':266 'def':575,594,974,1184,1350,1563 'def1234ghikl':246,473 'deletar':1518 'dentro':923 'deploy':1153 'describ':1809 'descricao':434 'descript':1304,1310 'desenvolvimento':1080,1085 'dest':1538 'deve':412 'digitando':1368 'disabl':700 'disponivei':1276 'diss':539,606 'diverso':682 'document':765,768 'documento':762,898 'domain':133,1755 'dotenv':487,504,506,552,556,559,573 'dotenv.config':507 'download':211 'dua':1069 'e':19,44,154,174,182,196,263,394,702,1076,1152,1414,1574,1612,1619 'echo':595,626 'editar':1478,1498 'eficient':1132 'em':461,1419,1647,1653 'encaminhar':1531 'encontrado':1627 'enhanc':1778,1786,1795 'enough':1766 'enquet':835,910 'entr':1670 'env':466 'envi':398 'envia':1135 'enviar':264,291,369,654,1018,1024 'envio':1571,1671 'environ':1821 'environment-specif':1820 'equivalent':888 'erro':1553,1577,1677 'escapar':723 'escolha':401,410,964,1045 'escolheu':998 'especiai':725 'esta':1367 'etc':878,1324 'eu':523,586 'evitar':1673 'ex':405,416 'exampl':738 'example.com':757,783,894,952 'example.com/img.jpg':756 'example.com/img.jpg'',':893 'example.com/video.mp4':782 'except':1596,1609,1631 'exemplo':1714 'exibicao':404 'existem':1068 'existent':453 'expert':1826 'expertis':134,1756 'express':1149 'f':604,640,649,658,996,1173,1179,1209,1218,1227,1622 'fals':852 'favorita':845,916 'faz':1088,1101 'fazer':290 'file':746 'filter':570,1335 'filters.command':625,1473 'filters.text':624,1472 'first':832 'flask':1150,1157,1160,1162,1167 'flood':1674 'forma':1070 'formato':198,242 'fornec':237 'foto':443,743,866,890 'found':1616 'fs.createreadstream':901 'funciona':361 'general':129 'general-purpos':128 'geral':1660 'gerenciamento':1696 'gerenciar':306,451 'get':195 'gpt':1323 'group':859 'grupo':15,40,462,853,1654,1658 'grupos/canais':307 'guard':425 'h':1295 'habilitar':455 'handl':122 'handler':617,622,970,1001,1470 'hello':386,667 'help':1273,1309 'histori':1348 'historico':1377,1440 'html':673,705,721,1497 'http':194,631,670,1287 'https':1142 'ia':321,325,1314,1321,1400 'id':382,384,663,665,691,711,713,730,732,747,754,767,780,792,808,818,828,840,861,884,963,1044,1060,1199,1203,1214,1216,1346,1359,1361,1374,1380,1388,1392,1425,1433,1449,1454,1458,1485,1487,1489,1491,1507,1509,1511,1513,1524,1526,1528,1530,1537,1540,1543,1546,1548,1550,1568,1593,1625 'ideal':1083 'implementar':140 'import':495,503,553,557,562,566,634,929,1012,1054,1161,1164,1261,1328,1332,1337,1557 'important':987 'incrivel':408,418 'indicar':1365 'iniciar':332,1269,1305 'inlin':13,38,171,312,456,920,956 'inlinekeyboardbutton':930,934,941,948,953 'inlinekeyboardmarkup':931,933 'input':1835 'inputmediaphoto':863,868 'inputmediavideo':870 'instagram':1774 'instal':481,491,545 'instalar':479,543 'integracao':2,24,27 'interagem':165 'interativo':303 'isso':1102 'italico':716,735 'ja':1100 'joao':834 'json':661,1188,1212,1230 'keyboard':14,39,172,305,699,921,932,969,1006,1015,1034,1038,1048,1517 'keyboardbutton':1014,1017,1023 'kwarg':1570,1595 'languag':343,350 'latitud':819 'legenda':760,897 'leia':1143 'len':1445 'limit':207,1645,1797 'limitar':1439 'linguagem':282 'link':718,737 'lista':447 'load':558,572 'localizacao':813,905,1019 'locat':816,1021 'long':1074,1078 'longitud':821 'lower':1620 'mai':176,1081,1131 'mani':1680 'manter':1376 'markdownv2':722,742 'markup':697,968,1047,1064,1499,1505,1515 'match':1806 'max':1409,1578,1585,1600,1635 'media':858,862 'mensagem':99,296,371,655,678,925,1519,1532 'mensagen':11,36,169,292,298,1443,1646,1652 'mensal':774 'mention':54,62,71,80,89,98 'menu':1255 'messag':531,709,728,961,994,1042,1058,1190,1197,1201,1206,1238,1347,1421,1482,1488,1503,1510,1522,1527,1535,1547,1591 'messagehandl':569,623,1334,1471 'method':1182 'metodo':193,688 'meu':406,417 'midia':855 'minha':798 'miss':1843 'mode':313,457,672,720,741,1496 'model':1403 'modo':459 'msg':519,532 'msg.chat.id':521,537 'msg.message':1490,1512,1529,1549 'msg.text':534,540 'msg.text.startswith':535 'msg/minuto':1656 'msg/segundo':1651,1662 'muito':175 'multipart':215 'multipart/form-data':205 'musica':799 'musica.mp3':795 'name':833,1168 'nao':251,280,1626 'need':127 'negrito':715,734 'networkerror':1561,1632 'new':510,1120,1516 'ngrok':1151 'node':483,499,1112 'node-telegram-bot-api':482,498,1111 'node.js':18,43,152,284,476,887,1709 'node.js/typescript':151,283,475 'nodej':344 'nome':402 'none':1629 'notif':701,1666 'npm':480,490 'number':830 'o':238,249,268,287,357,392,423,679,990,1086,1133,1270,1306,1683 'ofici':149 'ogg':801 'ok':1222 'ola':522,585 'one':1036 'opcao':935,942,966,1029,1031 'open':769,794,810 'openai':1340 'opt':939,946 'option':846 'opus':803 'orchestr':1782 'orient':256 'os':554,687 'os.getenv':611 'ou':347,748,1339 'output':1815 'outsid':1753 'overview':26,156 'padrao':1315 'pagamento':173,315 'para':139,221,331,354,368,488,694,698,1084,1127,1139,1145,1252,1316,1672 'paramet':693 'parametro':200 'pars':671,719,740,1495 'path':345,352 'payload':1716 'pelo':180 'perfil':445 'periodica':1090 'permiss':1836 'permit':161 'phone':829 'photo':752,755,877 'pip':544 'pitfal':1747 'poll':515,628,838,1075,1079,1105,1117,1123,1477 'por':744,1657 'porta':219 'portugu':1420 'posso':528,591 'post':197,1138,1183,1291 'practic':1719 'pre':228 'pre-requisito':227 'precisa':270 'prestativo':1417 'print':652,674,1621 'privacidad':460 'privado':1649 'process.env.telegram':512 'producao':1126,1128 'product':1736 'profission':25 'profissionai':142 'project':1726,1767 'projeto':334 'pronto':339 'protect':703 'provid':1720,1765 'pure':669 'puro':632 'purpos':130 'python':20,45,155,286,341,348,351,363,375,541,542,547,551,633,926,1009,1051,1095,1097,1156,1258,1325,1554,1712 'python-dotenv':550 'python-telegram-bot':546,1096 'qual':281,842,913 'que':164,288,1366 'quer':289 'queri':201,957,982,984,1240 'query.answer':986 'query.data':999 'query.edit':993 'question':841 'r':647,656 'r.json':653,675 'rais':1608,1630,1643 'rang':1584 'rapido':1155 'rate':1644 'rb':771,796,812 'receb':297,300,1066,1072,1676 'recebi':1219 'recomendado':706 'recommend':1758 'recurso':1700 'references/advanced-features.md':314,316,1702 'references/api-reference.md':330,1707 'references/chat-management.md':308,1699 'references/webhook-setup.md':311,1144,1695 'referencia':326,1687,1703 'registr':1250 'registrar':1224 'relat':57,66,75,84,93,102,1772 'relatorio':773,904 'relatorio.pdf':770,902 'remov':1049 'removido':1062 'repli':692,696,967,1005,1046,1063,1426,1438,1463,1504,1514 'replykeyboardmarkup':1013,1016 'replykeyboardremov':1055,1065 'request':124,635,1020,1026,1163,1165,1681 'request.get':1187 'requests.get':648 'requests.post':657,1208,1226 'requir':1728,1834 'requisico':1089 'requisito':229 'resiz':1033 'respeit':1682 'respond':695,989 'responda':1418 'respons':1352,1401,1475 'response.content':1427 'retorna':422 'retornado':1686 'retri':1573,1579,1586,1601,1636,1684 'return':1221,1588,1628 'review':1729,1827 'role':1394,1435 'safe':1564 'safeti':1837 'sao':178,1130 'scope':1808 'scripts/send_message.py':376 'scripts/setup_project.py':342,349 'scripts/test_bot.py':364 'se':248,356,1675 'secao':275,293,299,304,322 'secret':1241,1244 'seguranca':427 'seguro':1245 'sem':629 'sempr':988 'send':1565 'servico':1285 'servidor':1092 'set':1278 'setup':8,33,276,310,387,1154,1692 'seu':366,378,525,588,637,1170,1243 'seu-dominio.com':1233 'seu-dominio.com/webhook/':1232 'sim':274 'simpl':1082 'simpler':117 'site':950 'skill':50,108,138,1742,1750,1773,1776,1784,1793,1800 'skill-telegram' 'sobr':439 'social':1781 'social-orchestr':1780 'sonnet':1406 'sou':524,587 'sourc':1544 'source-sickn33' 'specif':119,1722,1762,1822 'start':576,619,620,1268,1303 'status':1281,1283 'stop':1828 'str':1618 'string':202 'sua':843,914,1140 'substitut':1818 'success':1840 'suggest':1731 'suporta':150,681 'suportada':220 'switch':955 'system':1412 'task':111,1752,1804 'teclado':302,1007,1050,1061 'telegram':1,5,21,30,55,64,72,82,91,100,115,144,158,232,262,393,467,484,500,548,561,612,680,928,1011,1053,1094,1098,1113,1134,1257,1260,1327 'telegram.error':1556 'telegram.ext':565,1331 'telegrambot':496,511,1121 'telegramerror':1558 'tem':252 'terminar':413 'test':373,1824 'testar':355 'text':385,584,603,666,714,733,995,1194,1204,1207,1217,1220,1363,1398,1429,1462,1483,1492,1569,1594 'texto':438,958,1479,1493 'time':1037 'timedout':1560,1597 'tipo':294,676,683 'titl':797 'todo':686 'token':185,239,240,358,365,367,377,379,424,469,514,610,614,636,638,644,1122,1169,1171,1177,1181,1235,1242,1410,1466,1467 'tool':120 'topic':58,67,76,85,94,103 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'topico':1690 'total':1664 'tratamento':1551,1575 'treat':1813 'tree':267 'tri':1587 'true':516,1022,1028,1035,1039,1124 'type':581,600,875,886,981,1109,1298,1357,1375 'types/node-telegram-bot-api':493 'typescript':478,489,494,889,1110 'ultima':1441 'um':253,272,333,1415 'uma':370,965 'understand':1760 'unico':186 'unrel':113 'updat':301,563,577,578,596,597,977,978,1067,1073,1107,1136,1186,1192,1196,1200,1205,1237,1329,1353,1354 'update.all':1108 'update.callback':983 'update.message.chat':1360 'update.message.reply':583,602,1461 'update.message.text':607,1364 'upload':206,213,749,876 'url':188,218,745,951,1141,1231 'url1':864 'url2':869 'url3':871 'usando':145 'use':48,106,1667,1748,1798 'user':53,61,70,79,88,97,126,1343,1362,1383,1385,1389,1395,1397,1422,1430,1446,1451,1455 'usernam':411 'usuario':167,250,269 'utei':430 'valid':1823 'variavei':463 'ver':1274,1282 'verd':848,918 'verificar':645 'vermelho':849,919 'via':168,184,214,217,235,1137,1286 'video':775,778,781 'voce':538,605,997,1413 'voic':806,809 'voz':800 'webhook':12,37,222,309,1077,1125,1129,1158,1185,1225,1694 'whatsapp':1789 'whatsapp-cloud-api':1788 'without':132,1759 'work':137 'x':1290 'zero':336 'zyx57w2v1u123ew11':247,474","prices":[{"id":"9b43710b-3757-4217-95dd-2e46793e6cf2","listingId":"04336930-8d3a-408d-905c-61dfd39ae827","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:46:02.839Z"}],"sources":[{"listingId":"04336930-8d3a-408d-905c-61dfd39ae827","source":"github","sourceId":"sickn33/antigravity-awesome-skills/telegram","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/telegram","isPrimary":false,"firstSeenAt":"2026-04-18T21:46:02.839Z","lastSeenAt":"2026-04-22T06:51:59.668Z"}],"details":{"listingId":"04336930-8d3a-408d-905c-61dfd39ae827","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"telegram","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34460,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-22T06:40:00Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"741041845501aace78cabf5badcf049e66156fa7","skill_md_path":"skills/telegram/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/telegram"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"telegram","description":"Integracao completa com Telegram Bot API. Setup com BotFather, mensagens, webhooks, inline keyboards, grupos, canais. Boilerplates Node.js e Python."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/telegram"},"updatedAt":"2026-04-22T06:51:59.668Z"}}