Zpět na domů

Green-API pro MAX: userboty a automatizace

Materiál popisuje použití Green-API pro vytvoření userbotů v MAX. Pokryty metody odesílání zpráv, parsování historie, administrace skupin s příklady kódu a limity. Praktické případy: moderace, pozvání, reporty.

Userboty MAX na Green-API: kód a limity
Advertisement 728x90

Automatizace MAX přes Green-API: metody, limity a kód pro userboty

Userbot v MAX je klientský účet s ověřeným číslem, který řídí skript bez oficiálního API. Green-API nabízí HTTP rozhraní pro odesílání zpráv, parsování historie, správu skupin. Limity: 50 zpráv/sek, 1 požadavek/sek na historii a skupiny. Kontrola frekvence je nutná k vyhnutí se banům.

Základní metody práce se zprávami

Odesílání podporuje text až 4000 znaků, soubory přes URL nebo upload, geolokace, kontakty vCard.

  • SendMessage: základní odeslání textu s emodži.
  • SendFileByUrl: média přes externí odkaz.
  • SendFileByUpload: lokální soubory přes multipart/form-data.
  • SendLocation: šířka, délka, název místa.
  • SendContact: kontaktní karta.

Stahování souborů z chatů: DownloadFile pro obrázky, dokumenty, audio, video.

Google AdInline article slot

Parsování historie: GetChatHistory vytahuje až 5000 zpráv za 3 měsíce s filtrem podle data.

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

Parametry:

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

Odpověď obsahuje typ zprávy (incoming/outgoing), idMessage, timestamp, textMessage, extendedTextMessage s detaily.

Google AdInline article slot
[
    {
        "type": "outgoing",
        "idMessage": "1763115112345",
        "timestamp": 1754999812,
        "typeMessage": "extendedTextMessage",
        "chatId": "10000000",
        "textMessage": "Používám GREEN-API k odeslání této zprávy!",
        "extendedTextMessage": {
            "text": "Používám GREEN-API k odeslání této zprávy!",
            "description": "",
            "title": "",
            "jpegThumbnail": "",
            "forwardingScore": 0,
            "isForwarded": false
        },
        "statusMessage": "",
        "sendByApi": true
    }
]

Další: GetMessage podle ID, LastIncomingMessages, LastOutgoingMessages.

Limity pro zprávy:

  • Odesílání zpráv/souborů/lokací/kontaktů: ≤50/sek.
  • Nahrávání souborů, historie chatu, skupiny: ≤1/sek.
  • Editace: ≤50/sek.

Správa skupin

Vytvoření: CreateGroup s okamžitým přidáním účastníků (AddGroupParticipant), nastavením avatara (SetGroupPicture).

Google AdInline article slot

Aktualizace: UpdateGroupName, UpdateGroupSettings pro oprávnění.

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

GetGroupData vrací:

  • chatId, owner, subject, description.
  • creation (Unix timestamp).
  • groupInviteLink (pokud je dostupný).
  • Oprávnění: addMembers, editSettings, pinMessages.
  • size (počet účastníků).
  • participants (admini; plný seznam při <100 účastnících).
{
  "chatId": "-10000000000000",
  "owner": "79001234567",
  "subject": "Název skupiny",
  "description": "Popis skupiny",
  "creation": 1764637936,
  "groupInviteLink": "https://invite.link/abc123",
  "allowParticipantsAddMembers": true,
  "allowParticipantsEditGroupSettings": false,
  "allowParticipantsPinMessages": true,
  "size": 150,
  "participants": [
    {
      "chatId": "79001234567",
      "isAdmin": true,
      "isSuperAdmin": true
    }
  ]
}

Správa účastníků: AddGroupParticipant, RemoveGroupParticipant, SetGroupAdmin, RemoveAdmin.

Servisní metody

  • GetChats: seznam dialogů (skupiny s chatId <0, phoneNumber=0).
[
  {
    "chatId": "-10000000000000",
    "phoneNumber": 0
  },
  {
    "chatId": "79001234567",
    "phoneNumber": 79001234567
  }
]
  • CheckAccount: stav registrace (exist, chatId). Limit je přísný — riziko banu.
  • GetContacts: kontakty z telefonního seznamu.
[
  {
    "chatId": "79001234567",
    "name": "Ivan Petrov",
    "contactName": "Ivan",
    "type": "user",
    "phoneNumber": 79001234567
  }
]

Praktické realizace

Moderace skupiny: Parsování notifikací, kontrola stop-slov, mazání a odpověď.

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, 
                    "⚠️ Porušení pravidel chatu"
                )

Auto-inviter: Rozdělení podle oddělení.

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
        )

Generátor reportů: Sběr z CRM, push do chatu.

def send_daily_report():
    stats = get_daily_statistics()
    
    report = f"📊 Report za {date.today()}:\n"
    report += f"Nové objednávky: {stats['orders']}\n"
    report += f"Tržby: {stats['revenue']} Kč\n"
    
    client.send_message(report_target_chat, report)

Co je důležité

  • Kontrolujte limity: 50/sek na odesílání, 1/sek na skupiny/historii — překročení vede k banu.
  • GetChatHistory: max 5000 zpráv/3 měsíce, filtr podle data je nutný pro velké chaty.
  • Skupiny >100 účastníků: API vrací jen role bota, plný pars nejsou dostupné.
  • CheckAccount používejte zřídka — riziko 2týdenního banu.
  • PyMax jako alternativa: open-source, ale bez SLA, vyžaduje vlastní nastavení.

— Editorial Team

Advertisement 728x90

Číst dál