Powrót do strony głównej

Green-API dla MAX: userboty i automatyzacja

Materiały opisują wykorzystanie Green-API do tworzenia userbotów w MAX. Omówiono metody wysyłania wiadomości, parsowania historii, administrowania grupami z przykładami kodu i limitami. Praktyczne przypadki: moderacja, zapraszanie, raporty.

Userboty MAX na Green-API: kod i limity
Advertisement 728x90

Automatyzacja MAX za pomocą Green-API: metody, limity i kod dla userbotów

Userbot w MAX to konto klienckie z zweryfikowanym numerem telefonu, sterowane skryptem bez oficjalnego API. Green-API oferuje interfejs HTTP do wysyłania wiadomości, parsowania historii, zarządzania grupami. Limity: 50 wiadomości/sek, 1 żądanie/sek na historię i grupy. Kontrola częstotliwości jest kluczowa, by uniknąć banów.

Podstawowe metody pracy z wiadomościami

Wysyłanie obsługuje tekst do 4000 znaków, pliki z URL lub upload, geolokalizacje, kontakty vCard.

  • SendMessage: podstawowe wysyłanie tekstu z emoji.
  • SendFileByUrl: multimedia z zewnętrznego linku.
  • SendFileByUpload: lokalne pliki przez multipart/form-data.
  • SendLocation: szerokość, długość geograficzna, nazwa miejsca.
  • SendContact: karta kontaktu.

Pobieranie plików z czatów: DownloadFile dla obrazów, dokumentów, audio, wideo.

Google AdInline article slot

Parsowanie historii: GetChatHistory pobiera do 5000 wiadomości z 3 miesięcy z filtrem po dacie.

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'
}

Odpowiedź zawiera typ wiadomości (incoming/outgoing), idMessage, timestamp, textMessage, extendedTextMessage z szczegółami.

Google AdInline article slot
[
    {
        "type": "outgoing",
        "idMessage": "1763115112345",
        "timestamp": 1754999812,
        "typeMessage": "extendedTextMessage",
        "chatId": "10000000",
        "textMessage": "Używam GREEN-API do wysłania tej wiadomości!",
        "extendedTextMessage": {
            "text": "Używam GREEN-API do wysłania tej wiadomości!",
            "description": "",
            "title": "",
            "jpegThumbnail": "",
            "forwardingScore": 0,
            "isForwarded": false
        },
        "statusMessage": "",
        "sendByApi": true
    }
]

Dodatkowo: GetMessage po ID, LastIncomingMessages, LastOutgoingMessages.

Limity wiadomości:

  • Wysyłanie wiadomości/plików/lokalizacji/kontaktów: ≤50/sek.
  • Pobieranie plików, historia czatu, grupy: ≤1/sek.
  • Edycja: ≤50/sek.

Zarządzanie grupami

Tworzenie: CreateGroup z natychmiastowym dodaniem uczestników (AddGroupParticipant), ustawieniem avatara (SetGroupPicture).

Google AdInline article slot

Aktualizacja: UpdateGroupName, UpdateGroupSettings dla uprawnień.

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

GetGroupData zwraca:

  • chatId, owner, subject, description.
  • creation (Unix timestamp).
  • groupInviteLink (jeśli dostępne).
  • Uprawnienia: addMembers, editSettings, pinMessages.
  • size (liczba uczestników).
  • participants (admini; pełna lista przy <100 uczestnikach).
{
  "chatId": "-10000000000000",
  "owner": "79001234567",
  "subject": "Nazwa grupy",
  "description": "Opis grupy",
  "creation": 1764637936,
  "groupInviteLink": "https://invite.link/abc123",
  "allowParticipantsAddMembers": true,
  "allowParticipantsEditGroupSettings": false,
  "allowParticipantsPinMessages": true,
  "size": 150,
  "participants": [
    {
      "chatId": "79001234567",
      "isAdmin": true,
      "isSuperAdmin": true
    }
  ]
}

Zarządzanie uczestnikami: AddGroupParticipant, RemoveGroupParticipant, SetGroupAdmin, RemoveAdmin.

Metody serwisowe

  • GetChats: lista dialogów (grupy z chatId <0, phoneNumber=0).
[
  {
    "chatId": "-10000000000000",
    "phoneNumber": 0
  },
  {
    "chatId": "79001234567",
    "phoneNumber": 79001234567
  }
]
  • CheckAccount: status rejestracji (exist, chatId). Limit surowy — ryzyko bana.
  • GetContacts: kontakty z książki telefonicznej.
[
  {
    "chatId": "79001234567",
    "name": "Jan Kowalski",
    "contactName": "Jan",
    "type": "user",
    "phoneNumber": 79001234567
  }
]

Praktyczne implementacje

Moderacja grupy: Parsowanie powiadomień, sprawdzanie słów zakazanych, usuwanie i odpowiedź.

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, 
                    "⚠️ Naruszenie zasad czatu"
                )

Auto-inviter: Rozdzielanie po działach.

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
        )

Generator raportów: Zbieranie z CRM, push do czatu.

def send_daily_report():
    stats = get_daily_statistics()
    
    report = f"📊 Raport za {date.today()}:\n"
    report += f"Nowe zamówienia: {stats['orders']}\n"
    report += f"Przychody: {stats['revenue']} zł.\n"
    
    client.send_message(report_target_chat, report)

Co ważne

  • Kontroluj limity: 50/sek na wysyłanie, 1/sek na grupy/historię — przekroczenie prowadzi do bana.
  • GetChatHistory: max 5000 wiadomości/3 miesiące, filtr po dacie obowiązkowy dla dużych czatów.
  • Grupy >100 uczestników: API zwraca tylko role bota, pełny parsing niedostępny.
  • CheckAccount używaj rzadko — ryzyko 2-tygodniowego bana.
  • PyMax jako alternatywa: open-source, ale bez SLA, wymaga samodzielnej konfiguracji.

— Editorial Team

Advertisement 728x90

Czytaj dalej