API de bots
BotFather crea el bot y muestra su token una sola vez. El token da control total: guárdalo como secreto y no lo pegues en chats, capturas ni repositorios.
Cómo funciona
El usuario envía un comando al contacto del bot. FlashChat guarda esa actualización durante siete días. El programa del bot llama a getUpdates, ejecuta el trabajo y responde con sendMessage o sendPhoto. El Worker está disponible 24/7, pero un bot que abre un navegador en tu PC solo puede hacerlo mientras ese ordenador y su proceso estén encendidos.
Modelo local por defecto: cada persona ejecuta su bot en su propio PC. El adaptador solo realiza peticiones HTTPS salientes a FlashChat; no abre puertos, no convierte el ordenador en servidor y nadie puede entrar en él desde FlashChat.
Dirección base
https://flashchat-web.flashchatio.workers.dev/api/bot/METODO
Envía el token exclusivamente en la cabecera Authorization: Bearer TU_TOKEN. No lo pongas en la URL: las URLs pueden terminar en historiales, proxies y registros.
Comprobar el bot
curl "https://flashchat-web.flashchatio.workers.dev/api/bot/getMe" \ -H "Authorization: Bearer $FLASHCHAT_BOT_TOKEN"
Recibir comandos
curl -X POST "https://flashchat-web.flashchatio.workers.dev/api/bot/getUpdates" \
-H "Authorization: Bearer $FLASHCHAT_BOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"offset":0,"limit":25}'
Guarda el último update_id procesado y pide el siguiente con offset = update_id + 1. Cada actualización contiene message.chat.id y message.text.
Responder con texto
curl -X POST "https://flashchat-web.flashchatio.workers.dev/api/bot/sendMessage" \
-H "Authorization: Bearer $FLASHCHAT_BOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"chat_id":"ID_DEL_USUARIO","text":"Ruta encontrada"}'
Responder con una captura
sendPhoto acepta PNG, JPEG o WebP como URL de datos base64. El cuerpo completo está limitado a 8 MB.
{
"chat_id": "ID_DEL_USUARIO",
"photo": "data:image/png;base64,iVBORw0KGgo...",
"caption": "Trenes encontrados"
}
Ejemplo mínimo en Node.js
const base = `${process.env.FLASHCHAT_URL}/api/bot`;
const headers = {
'authorization': `Bearer ${process.env.FLASHCHAT_BOT_TOKEN}`,
'content-type': 'application/json'
};
let offset = 0;
for (;;) {
const data = await fetch(`${base}/getUpdates`, {
method: 'POST', headers,
body: JSON.stringify({offset})
}).then(response => response.json());
for (const update of data.result || []) {
offset = update.update_id + 1;
const chat_id = update.message.chat.id;
await fetch(`${base}/sendMessage`, {
method: 'POST', headers,
body: JSON.stringify({chat_id, text: `Recibido: ${update.message.text}`})
});
}
await new Promise(resolve => setTimeout(resolve, 2000));
}
Match Travel Bot en Windows
El instalador de FlashChat detecta Match Travel Bot en el Escritorio, usa su entorno Python existente y crea o conecta automáticamente @match_travel_bot. El token se cifra con el almacén seguro de Windows, no se guarda en texto plano. El adaptador conserva los comandos, ajustes, base de datos y capturas del bot de Telegram, sustituyendo únicamente la entrada y salida por la API de FlashChat.
Verificador M3U8 en Windows
FlashChat detecta Verificador_M3U8_Telegram en el Escritorio y reutiliza su lógica real de escaneo. El token de Telegram permanece en config/m3u8_config.json y solo sirve para Telegram. FlashChat crea o conecta un bot distinto, guarda su token cifrado en %APPDATA%\FlashChat\verificador-m3u8-bot.secure y lo entrega al adaptador únicamente en memoria. En el chat están disponibles /scan, /code, /status, /devices, /pair, /unpair y /play.
SSH y funcionamiento 24/7
Para usarlo en tu propio PC no necesitas SSH: inicia el adaptador allí y mantenlo encendido. SSH solo sirve para administrar otra máquina que tú controles. Si el trabajo debe continuar con el PC apagado, mueve el proceso a un servidor 24/7. Usa una clave SSH exclusiva, un usuario sin privilegios, autenticación por clave y una lista cerrada de comandos. FlashChat no expone una shell general ni ejecuta texto arbitrario recibido de desconocidos.
Actividad en tiempo real
Mientras procesa una orden, el bot puede llamar a sendChatAction con typing, executing, terminal o done. FlashChat lo enseña bajo el nombre del bot y, si se envía un detalle seguro, en el panel de actividad. No envíes tokens, rutas privadas ni secretos como detalle.
Seguridad y límites
Las respuestas usan {"ok":true,"result":...}. Un token incorrecto devuelve 401; un chat inactivo, 404; y el exceso de solicitudes, 429. El texto está limitado a 4000 caracteres. El servidor conserva únicamente el hash del token y rotarlo invalida el anterior inmediatamente. Los límites antiabuso no son cuotas de uso del usuario: protegen el servicio frente a agotamiento deliberado.