Saltar al contenido principal
Nivel: Principiante · Etiquetas: WhatsApp, Telegram, Encuestas, Reacciones Funciones que muestra: ctx.poll() · votos de encuestas (bot.on('poll')) · bot.send() fuera de un handler · ctx.react() · :click del simulador

Requisitos previos

Node.js 22.12 o superior y una carpeta con "type": "module" (ver Inicio rápido). Después instala:

El bot completo

Transcripción de ejemplo

Capturada con npx botmesh dev bot.js; :click 2 vota por la segunda opción de la última encuesta:

Cómo funciona

  • ctx.poll(pregunta, opciones, multiSelect?) envía una encuesta nativa. Las encuestas son nativas en WhatsApp con Baileys y en Telegram; la WhatsApp Cloud API no las tiene (allí ctx.poll() rechaza con UnsupportedContentError: usa botones, ver el Bot de menú).
  • Los votos son eventos, no mensajes. bot.on('poll') recibe { ref, senderId, options }, donde options trae cada opción con sus votes y voters. Cambiar o retirar un voto lo dispara otra vez.
  • bot.send(chatId, texto) envía fuera de un handler; vote.ref.chatId es el chat donde se votó la encuesta.
  • ctx.react(emoji) reacciona al mensaje entrante. Los canales sin reacciones resuelven { skipped: true } en vez de fallar.
  • En WhatsApp los votos van cifrados de extremo a extremo: el provider los descifra, pero solo para encuestas que este proceso envió o vio (ver Votos de encuestas).

Ejecutarlo en WhatsApp o Telegram

node bot.js muestra un QR: escanéalo en WhatsApp → Dispositivos vinculados. En Telegram, instala @botmesh/telegram y cambia el provider como se muestra en O conectar Telegram; sus encuestas se envían no anónimas para que los votos lleguen al bot.

Siguientes pasos