MAX mit Green-API automatisieren: Methoden, Limits und Userbot-Code
Ein Userbot in MAX ist ein Client-Konto mit verifizierter Telefonnummer, das per Skript gesteuert wird – ohne offizielle API. Green-API stellt eine HTTP-Schnittstelle für das Versenden von Nachrichten, das Auslesen von Chat-Verläufen und die Gruppenverwaltung bereit. Wichtige Limits: 50 Nachrichten/Sekunde, 1 Anfrage/Sekunde für Verläufe und Gruppen. Rate-Limiting ist essenziell, um Bans zu vermeiden.
Kernmethoden für Nachrichtenverarbeitung
Versenden unterstützt Text bis 4000 Zeichen, Dateien per URL oder Upload, Standorte und vCard-Kontakte.
- SendMessage: Einfaches Textversenden mit Emojis.
- SendFileByUrl: Medien aus externen Links.
- SendFileByUpload: Lokale Dateien via multipart/form-data.
- SendLocation: Breiten- und Längengrad plus Ortsname.
- SendContact: Kontaktkarte.
Dateien aus Chats herunterladen: DownloadFile für Bilder, Dokumente, Audio und Video.
Chat-Verlauf auslesen: GetChatHistory holt bis zu 5000 Nachrichten aus den letzten 3 Monaten mit Datumsfiltern.
POST {{apiUrl}}/waInstance{{idInstance}}/getChatHistory/{{apiTokenInstance}}
Parameter:
url = "https://3100.api.green-api.com/waInstance{id}/getChatHistory/{token}"
payload = {
"chatId": "-730*******5943",
"count": 500
}
headers = {
'Content-Type': 'application/json'
}
Antwort enthält Nachrichtentyp (eingehend/ausgehend), idMessage, timestamp, textMessage und Details zu extendedTextMessage.
[
{
"type": "outgoing",
"idMessage": "1763115112345",
"timestamp": 1754999812,
"typeMessage": "extendedTextMessage",
"chatId": "10000000",
"textMessage": "Ich nutze GREEN-API, um diese Nachricht zu senden!",
"extendedTextMessage": {
"text": "Ich nutze GREEN-API, um diese Nachricht zu senden!",
"description": "",
"title": "",
"jpegThumbnail": "",
"forwardingScore": 0,
"isForwarded": false
},
"statusMessage": "",
"sendByApi": true
}
]
Zusätzlich: GetMessage per ID, LastIncomingMessages, LastOutgoingMessages.
Nachrichtenlimits:
- Versenden von Nachrichten/Dateien/Standorten/Kontakten: ≤50/Sek..
- Dateidownloads, Chat-Verläufe, Gruppen: ≤1/Sek..
- Bearbeiten: ≤50/Sek..
Gruppenverwaltung
Erstellen: CreateGroup mit sofortigem Hinzufügen von Teilnehmern (AddGroupParticipant) und Avatar-Setup (SetGroupPicture).
Aktualisieren: UpdateGroupName, UpdateGroupSettings für Berechtigungen.
{
"chatId": "-10000000000000",
"allowParticipantsAddMembers": true,
"allowParticipantsEditGroupSettings": false,
"allowParticipantsPinMessages": true
}
GetGroupData liefert:
- chatId, Eigentümer, Betreff, Beschreibung.
- Erstellungsdatum (Unix-Timestamp).
- groupInviteLink (falls verfügbar).
- Berechtigungen: Mitglieder hinzufügen, Einstellungen ändern, Nachrichten anheften.
- size (Teilnehmerzahl).
- participants (Admins; volle Liste bei <100 Mitgliedern).
{
"chatId": "-10000000000000",
"owner": "79001234567",
"subject": "Gruppenname",
"description": "Gruppenbeschreibung",
"creation": 1764637936,
"groupInviteLink": "https://invite.link/abc123",
"allowParticipantsAddMembers": true,
"allowParticipantsEditGroupSettings": false,
"allowParticipantsPinMessages": true,
"size": 150,
"participants": [
{
"chatId": "79001234567",
"isAdmin": true,
"isSuperAdmin": true
}
]
}
Teilnehmer verwalten: AddGroupParticipant, RemoveGroupParticipant, SetGroupAdmin, RemoveAdmin.
Hilfsmethoden
- GetChats: Liste der Chats (Gruppen haben chatId <0, phoneNumber=0).
[
{
"chatId": "-10000000000000",
"phoneNumber": 0
},
{
"chatId": "79001234567",
"phoneNumber": 79001234567
}
]
- CheckAccount: Registrierungsstatus (exist, chatId). Strenges Limit – hohes Ban-Risiko.
- GetContacts: Telefonbuch-Kontakte.
[
{
"chatId": "79001234567",
"name": "Max Mustermann",
"contactName": "Max",
"type": "user",
"phoneNumber": 79001234567
}
]
Praktische Umsetzungen
Gruppenmoderation: Benachrichtigungen auslesen, auf Sperrwörter prüfen, löschen und antworten.
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,
"⚠️ Verstoß gegen Chat-Regeln"
)
Auto-Einlader: Nach Abteilungen verteilen.
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
)
Berichtsgenerator: Aus CRM ziehen, in Chat pushen.
def send_daily_report():
stats = get_daily_statistics()
report = f"📊 Tagesbericht für {date.today()}:\n"
report += f"Neue Bestellungen: {stats['orders']}\n"
report += f"Umsatz: {stats['revenue']} €\n"
client.send_message(report_target_chat, report)
Wichtige Erkenntnisse
- Limits einhalten: 50/Sek. für Versand, 1/Sek. für Gruppen/Verläufe – Überschreitung führt zu Bans.
- GetChatHistory: max. 5000 Nachrichten/3 Monate, Datumsfilter für große Chats nutzen.
- Gruppen >100 Mitglieder: API zeigt nur Bot-Rollen, keine volle Teilnehmerliste.
- CheckAccount sparsam einsetzen – Risiko für 2-Wochen-Ban.
- PyMax als Alternative: Open-Source, kein SLA, selbst gehostet.
— Editorial Team
Noch keine Kommentare.