Volver al inicio

Green-API para MAX: userbots y automatización

El material describe el uso de Green-API para crear userbots en MAX. Cubre métodos para envío de mensajes, análisis de historial, administración de grupos con ejemplos de código y límites. Casos prácticos: moderación, invitaciones, reportes.

Userbots MAX en Green-API: código y límites
Advertisement 728x90

Automatización de MAX con Green-API: Métodos, Límites y Código de Userbot

Un userbot en MAX es una cuenta de cliente con número de teléfono verificado, controlada por scripts sin una API oficial. Green-API proporciona una interfaz HTTP para enviar mensajes, analizar historiales de chat y gestionar grupos. Límites clave: 50 mensajes/seg, 1 solicitud/seg para historial y grupos. El control de tasas es esencial para evitar bloqueos.

Métodos Principales para Manejo de Mensajes

El envío soporta texto hasta 4000 caracteres, archivos por URL o subida, ubicaciones y contactos vCard.

  • SendMessage: Envío básico de texto con emojis.
  • SendFileByUrl: Medios desde enlaces externos.
  • SendFileByUpload: Archivos locales vía multipart/form-data.
  • SendLocation: Latitud, longitud y nombre del lugar.
  • SendContact: Tarjeta de contacto.

Descarga de archivos de chats: DownloadFile para imágenes, documentos, audio y video.

Google AdInline article slot

Análisis de historial de chat: GetChatHistory obtiene hasta 5000 mensajes de los últimos 3 meses con filtros de fecha.

POST {{apiUrl}}/waInstance{{idInstance}}/getChatHistory/{{apiTokenInstance}}

Parámetros:

url = "https://3100.api.green-api.com/waInstance{id}/getChatHistory/{token}"
payload = {
    "chatId": "-730*******5943", 
    "count": 500
}
headers = {
    'Content-Type': 'application/json'
}

La respuesta incluye tipo de mensaje (entrante/saliente), idMessage, timestamp, textMessage y detalles de extendedTextMessage.

Google AdInline article slot
[
    {
        "type": "outgoing",
        "idMessage": "1763115112345",
        "timestamp": 1754999812,
        "typeMessage": "extendedTextMessage",
        "chatId": "10000000",
        "textMessage": "¡Estoy usando GREEN-API para enviar este mensaje!",
        "extendedTextMessage": {
            "text": "¡Estoy usando GREEN-API para enviar este mensaje!",
            "description": "",
            "title": "",
            "jpegThumbnail": "",
            "forwardingScore": 0,
            "isForwarded": false
        },
        "statusMessage": "",
        "sendByApi": true
    }
]

Adicionales: GetMessage por ID, LastIncomingMessages, LastOutgoingMessages.

Límites de Mensajes:

  • Envío de mensajes/archivos/ubicaciones/contactos: ≤50/seg.
  • Descargas de archivos, historial de chat, grupos: ≤1/seg.
  • Edición: ≤50/seg.

Administración de Grupos

Creación: CreateGroup con adición inmediata de participantes (AddGroupParticipant) y configuración de avatar (SetGroupPicture).

Google AdInline article slot

Actualizaciones: UpdateGroupName, UpdateGroupSettings para permisos.

{
  "chatId": "-10000000000000",
  "allowParticipantsAddMembers": true,
  "allowParticipantsEditGroupSettings": false,
  "allowParticipantsPinMessages": true
}

GetGroupData devuelve:

  • chatId, owner, subject, description.
  • creation (timestamp Unix).
  • groupInviteLink (si está disponible).
  • Permisos: addMembers, editSettings, pinMessages.
  • size (número de participantes).
  • participants (admins; lista completa si <100 miembros).
{
  "chatId": "-10000000000000",
  "owner": "79001234567",
  "subject": "Nombre del Grupo",
  "description": "Descripción del Grupo",
  "creation": 1764637936,
  "groupInviteLink": "https://invite.link/abc123",
  "allowParticipantsAddMembers": true,
  "allowParticipantsEditGroupSettings": false,
  "allowParticipantsPinMessages": true,
  "size": 150,
  "participants": [
    {
      "chatId": "79001234567",
      "isAdmin": true,
      "isSuperAdmin": true
    }
  ]
}

Gestión de participantes: AddGroupParticipant, RemoveGroupParticipant, SetGroupAdmin, RemoveAdmin.

Métodos de Utilidad

  • GetChats: Lista de chats (grupos tienen chatId <0, phoneNumber=0).
[
  {
    "chatId": "-10000000000000",
    "phoneNumber": 0
  },
  {
    "chatId": "79001234567",
    "phoneNumber": 79001234567
  }
]
  • CheckAccount: Estado de registro (exist, chatId). Límite estricto—alto riesgo de bloqueo.
  • GetContacts: Contactos de la agenda.
[
  {
    "chatId": "79001234567",
    "name": "Juan Pérez",
    "contactName": "Juan",
    "type": "user",
    "phoneNumber": 79001234567
  }
]

Implementaciones Prácticas

Moderación de Grupos: Analiza notificaciones, verifica palabras prohibidas, elimina y responde.

def moderate_group_messages():
    notifications = client.receive_notification()
    
    for notification in notifications:
        if notification['type'] == 'incomingMessageReceived':
            message = notification['messageData']['textMessage']
            chat_id = notification['senderData']['chatId']
            
            if is_spam(message):
                client.delete_message(chat_id, message_id)
                client.send_message(
                    chat_id, 
                    "⚠️ Incumplimiento de normas del chat"
                )

Auto-Invitador: Distribuir por departamentos.

def add_employee_to_groups(phone, department):
    groups = get_groups_by_department(department)
    
    for group in groups:
        client.add_group_participant(
            chat_id=group['chatId'],
            participant_chat_id=phone
        )

Generador de Informes: Extrae de CRM, envía al chat.

def send_daily_report():
    stats = get_daily_statistics()
    
    report = f"📊 Informe Diario para {date.today()}:\n"
    report += f"Nuevos Pedidos: {stats['orders']}\n"
    report += f"Ingresos: ${stats['revenue']}\n"
    
    client.send_message(report_target_chat, report)

Conclusiones Clave

  • Respeta los límites: 50/seg para envíos, 1/seg para grupos/historial—superarlos causa bloqueos.
  • GetChatHistory: máx. 5000 mensajes/3 meses, usa filtros de fecha para chats grandes.
  • Grupos >100 miembros: la API solo muestra roles del bot, sin parseo completo de participantes.
  • Usa CheckAccount con moderación—riesgo de bloqueo de 2 semanas.
  • PyMax como alternativa: código abierto, sin SLA, autoalojado.

— Editorial Team

Advertisement 728x90

Leer después