[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-b3fbf34d-da7e-40a9-90f8-cec6e1217219":3,"$fYc3tr5DDGQSA8OkoYvtB8kfMkTgcOaLuK87uhIbCB88":42},{"id":4,"title":5,"description":6,"categoryId":7,"moduleId":8,"tags":9,"prompt":10,"icon":11,"source":12,"sourceUrl":13,"authorId":14,"authorName":15,"isPublic":16,"stars":17,"runs":18,"createdAt":19,"updatedAt":19,"module":20,"category":27,"packages":33},"b3fbf34d-da7e-40a9-90f8-cec6e1217219","telegram","与Telegram Bot API的完整集成。使用BotFather设置，包括消息、webhooks、内嵌键盘、群组、频道。Node.js和Python模板。","cat_coding_backend","mod_coding","sickn33,coding","---\nname: telegram\ndescription: Integracao completa com Telegram Bot API. Setup com BotFather, mensagens, webhooks, inline keyboards, grupos, canais. Boilerplates Node.js e Python.\nrisk: critical\nsource: community\ndate_added: '2026-03-06'\nauthor: renat\ntags:\n- messaging\n- telegram\n- bots\n- webhooks\ntools:\n- claude-code\n- antigravity\n- cursor\n- gemini-cli\n- codex-cli\n---\n\n# 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\u002FTypeScript 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:\u002F\u002Fapi.telegram.org\u002Fbot\u003CTOKEN>\u002FMETHOD_NAME`\n**Metodos HTTP:** GET e POST\n**Formatos de parametros:** query string, application\u002Fx-www-form-urlencoded, application\u002Fjson, multipart\u002Fform-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 `\u002Fnewbot`.\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\u002FTypeScript\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\u002Fcanais → references\u002Fchat-management.md\n       ├── Webhook setup → references\u002Fwebhook-setup.md\n       ├── Inline mode → references\u002Fadvanced-features.md\n       ├── Pagamentos → references\u002Fadvanced-features.md\n       ├── Bot de atendimento com IA → Secao \"Automacao com IA\"\n       └── Referencia completa da API → references\u002Fapi-reference.md\n```\n\nPara iniciar um projeto do zero com boilerplate pronto:\n```bash\npython scripts\u002Fsetup_project.py --language nodejs --path .\u002Fmeu-bot-telegram\n\n## Ou\n\npython scripts\u002Fsetup_project.py --language python --path .\u002Fmeu-bot-telegram\n```\n\nPara testar se o token do bot funciona:\n```bash\npython scripts\u002Ftest_bot.py --token \"SEU_TOKEN\"\n```\n\nPara enviar uma mensagem de teste:\n```bash\npython scripts\u002Fsend_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 `\u002Fnewbot`\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   - `\u002Fsetdescription` - descricao do bot\n   - `\u002Fsetabouttext` - texto \"sobre\" do bot\n   - `\u002Fsetuserpic` - foto de perfil\n   - `\u002Fsetcommands` - lista de comandos\n   - `\u002Fmybots` - gerenciar bots existentes\n   - `\u002Fsetinline` - habilitar inline mode\n   - `\u002Fsetprivacy` - 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\u002FTypescript\n\n```typescript\n\u002F\u002F Instalar: npm install node-telegram-bot-api dotenv\n\u002F\u002F Para TypeScript: npm install -D @types\u002Fnode-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(\u002F\\\u002Fstart\u002F, (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('\u002F')) {\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:\u002F\u002Fapi.telegram.org\u002Fbot{TOKEN}\"\n\n## Verificar Bot\n\nr = requests.get(f\"{BASE}\u002FgetMe\")\nprint(r.json())\n\n## Enviar Mensagem\n\nr = requests.post(f\"{BASE}\u002FsendMessage\", 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=\"\u003Cb>Negrito\u003C\u002Fb>, \u003Ci>italico\u003C\u002Fi>, \u003Ccode>codigo\u003C\u002Fcode>, \u003Ca href='https:\u002F\u002Fexample.com'>link\u003C\u002Fa>\",\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:\u002F\u002Fexample\\\\.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:\u002F\u002Fexample.com\u002Fimg.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:\u002F\u002Fexample.com\u002Fvideo.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\u002F\u002F Foto\nbot.sendPhoto(chatId, 'https:\u002F\u002Fexample.com\u002Fimg.jpg', { caption: 'Legenda' });\n\n\u002F\u002F Documento\nbot.sendDocument(chatId, fs.createReadStream('relatorio.pdf'), { caption: 'Relatorio' });\n\n\u002F\u002F Localizacao\nbot.sendLocation(chatId, -23.5505, -46.6333);\n\n\u002F\u002F 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:\u002F\u002Fexample.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\u002F\u002F 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\u002Fwebhook-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:\u002F\u002Fapi.telegram.org\u002Fbot{TOKEN}\"\n\n@app.route(f\"\u002Fwebhook\u002F{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}\u002FsendMessage\", 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}\u002FsetWebhook\", json={\n    \"url\": \"https:\u002F\u002Fseu-dominio.com\u002Fwebhook\u002F\" + 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:\u002F\u002Fapi.telegram.org\u002Fbot$TOKEN\u002FsetMyCommands\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\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 \u003C 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 \u003C 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\u002Fsegundo\n- **Mensagens em grupo:** ~20 msg\u002Fminuto por grupo\n- **Broadcast geral:** ~30 msg\u002Fsegundo 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\u002Fwebhook-setup.md` |\n| Gerenciamento de chats | `references\u002Fchat-management.md` |\n| Recursos avancados | `references\u002Fadvanced-features.md` |\n| Referencia completa da API | `references\u002Fapi-reference.md` |\n| Boilerplate Node.js | `assets\u002Fboilerplate\u002Fnodejs\u002F` |\n| Boilerplate Python | `assets\u002Fboilerplate\u002Fpython\u002F` |\n| Exemplos de payloads | `assets\u002Fexamples\u002F` |\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.\n","","imported","https:\u002F\u002Fgithub.com\u002Fsickn33\u002Fantigravity-awesome-skills","user_system_seed","SkillOPIC",true,135,1382,"2026-05-16 13:43:26",{"id":8,"name":21,"slug":22,"icon":23,"description":24,"sort":25,"createdAt":26},"编程开发","coding","mdi-code-braces","代码生成、调试、审查，提升开发效率",2,"2026-05-16 12:53:40",{"id":7,"name":28,"slug":29,"icon":30,"description":31,"moduleId":8,"sort":25,"skillCount":32,"createdAt":26},"后端开发","backend","mdi-server","API、数据库、服务端架构",296,[34],{"id":35,"skillId":4,"version":36,"fileName":37,"fileSize":38,"filePath":39,"fileHash":40,"manifest":41,"createdAt":19},"de112909-f527-429d-9ee1-68944fba0dfb","1.0.0","telegram.zip",32660,"uploads\u002Fskills\u002Fb3fbf34d-da7e-40a9-90f8-cec6e1217219\u002Ftelegram.zip","d00464aacda88eef49090692fb819829120e497b0ac58650df4a6c9a0f7dff6e","[{\"path\":\"SKILL.md\",\"isDirectory\":false,\"size\":16211},{\"path\":\"assets\u002Fboilerplate\u002Fnodejs\u002F.env.example\",\"isDirectory\":false,\"size\":286},{\"path\":\"assets\u002Fboilerplate\u002Fnodejs\u002Fpackage.json\",\"isDirectory\":false,\"size\":559},{\"path\":\"assets\u002Fboilerplate\u002Fnodejs\u002Fsrc\u002Fbot-client.ts\",\"isDirectory\":false,\"size\":2547},{\"path\":\"assets\u002Fboilerplate\u002Fnodejs\u002Fsrc\u002Fhandlers.ts\",\"isDirectory\":false,\"size\":2237},{\"path\":\"assets\u002Fboilerplate\u002Fnodejs\u002Fsrc\u002Findex.ts\",\"isDirectory\":false,\"size\":951},{\"path\":\"assets\u002Fboilerplate\u002Fnodejs\u002Ftsconfig.json\",\"isDirectory\":false,\"size\":394},{\"path\":\"assets\u002Fboilerplate\u002Fpython\u002F.env.example\",\"isDirectory\":false,\"size\":286},{\"path\":\"assets\u002Fboilerplate\u002Fpython\u002Fbot.py\",\"isDirectory\":false,\"size\":3681},{\"path\":\"assets\u002Fboilerplate\u002Fpython\u002Frequirements.txt\",\"isDirectory\":false,\"size\":77},{\"path\":\"assets\u002Fboilerplate\u002Fpython\u002Fwebhook_server.py\",\"isDirectory\":false,\"size\":3052},{\"path\":\"assets\u002Fexamples\u002Finline-keyboard.json\",\"isDirectory\":false,\"size\":1940},{\"path\":\"assets\u002Fexamples\u002Fwebhook-payloads.json\",\"isDirectory\":false,\"size\":3725},{\"path\":\"references\u002Fadvanced-features.md\",\"isDirectory\":false,\"size\":9754},{\"path\":\"references\u002Fapi-reference.md\",\"isDirectory\":false,\"size\":7931},{\"path\":\"references\u002Fchat-management.md\",\"isDirectory\":false,\"size\":7769},{\"path\":\"references\u002Fwebhook-setup.md\",\"isDirectory\":false,\"size\":7759},{\"path\":\"scripts\u002Fsend_message.py\",\"isDirectory\":false,\"size\":5487},{\"path\":\"scripts\u002Fsetup_project.py\",\"isDirectory\":false,\"size\":3636},{\"path\":\"scripts\u002Ftest_bot.py\",\"isDirectory\":false,\"size\":5602}]",{"code":43,"message":44,"data":45},200,"success",{"items":46,"stats":47,"page":50},[],{"averageRating":48,"totalRatings":48,"ratingCounts":49},0,[48,48,48,48,48],{"limit":51,"offset":48,"hasMore":52,"nextOffset":51,"ratedOnly":16},15,false]