Skip to content

danielitoCode/telegram_messages

Repository files navigation

Telegram Messages - Appwrite Function

Función de Appwrite para enviar mensajes a grupos de Telegram usando la API de Telegram Bot.

📋 Requisitos

  1. Un bot de Telegram creado con @BotFather
  2. El token del bot (proporcionado por BotFather)
  3. El Chat ID del grupo donde quieres enviar mensajes

🔧 Configuración en Appwrite

Variables de Entorno

Debes configurar las siguientes variables de entorno en tu función de Appwrite:

Variable Descripción Ejemplo
TELEGRAM_BOT_TOKEN Token del bot de Telegram 123456789:ABCdefGHIjklMNOpqrsTUVwxyz
TELEGRAM_CHAT_ID ID del chat/grupo de Telegram -1001234567890

Cómo obtener el Chat ID

  1. Añade tu bot al grupo de Telegram
  2. Envía un mensaje en el grupo
  3. Visita: https://api.telegram.org/bot<TU_TOKEN>/getUpdates
  4. Busca el campo "chat":{"id":-1001234567890} en la respuesta

🚀 Uso

Desde HTTP Request

# POST con JSON
curl -X POST https://[TU_APPWRITE_ENDPOINT]/functions/[FUNCTION_ID]/executions \
  -H "Content-Type: application/json" \
  -d '{"message": "Hola desde Appwrite!"}'

# GET con query params
curl "https://[TU_APPWRITE_ENDPOINT]/functions/[FUNCTION_ID]/executions?message=Hola"

Desde código JavaScript/Node.js

const sdk = require("node-appwrite");

const client = new sdk.Client()
  .setEndpoint("https://[TU_APPWRITE_ENDPOINT]")
  .setProject("[TU_PROJECT_ID]")
  .setKey("[TU_API_KEY]");

const functions = new sdk.Functions(client);

const execution = await functions.createExecution(
  "[FUNCTION_ID]",
  JSON.stringify({ message: "Hola desde código!" }),
);

📦 Estructura del Proyecto

telegram_messages/
├── src/
│   └── main.js              # Punto de entrada de Appwrite Function
├── telegramMessages.js      # Lógica de envío a Telegram
├── package.json
└── README.md

✅ Respuesta Exitosa

{
  "success": true,
  "message": "Mensaje enviado a Telegram",
  "telegramResponse": {
    "ok": true,
    "result": {
      "message_id": 123,
      "chat": { "id": -1001234567890 },
      "text": "Tu mensaje"
    }
  }
}

❌ Errores Comunes

Token o Chat ID no configurado

{
  "success": false,
  "error": "TELEGRAM_BOT_TOKEN no configurado"
}

Solución: Configura las variables de entorno en Appwrite Console

No se proporcionó mensaje

{
  "success": false,
  "error": "Se requiere un mensaje..."
}

Solución: Envía { "message": "tu texto" } en el body o ?message=texto en la URL

🔒 Seguridad

  • ✅ El token del bot nunca se expone en el código
  • ✅ Las credenciales se obtienen de variables de entorno de Appwrite
  • ✅ Validación de parámetros antes de enviar
  • ✅ Manejo de errores completo

📝 Logs

La función registra automáticamente:

  • Inicio de ejecución
  • Verificación de variables de entorno
  • Mensaje a enviar (primeros 50 caracteres)
  • Resultado del envío
  • Errores si ocurren

Puedes ver los logs en Appwrite Console → Functions → [Tu Función] → Executions

About

A nodeJS function to send messages to a telegram group from backend

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors