Typy połączeń
Pole provider ma wartość qr lub cloud_api. Co potrafi każdy z typów i czym naprawdę się różnią.
Każde połączenie zwraca pole provider, które przyjmuje jedną z dwóch wartości:
provider | Czym jest | Jak się je podłącza |
|---|---|---|
qr | Zwykły numer WhatsApp (sprzedawany jako WAPP), sparowany przez powiązanie urządzenia. | POST /connections, a następnie zeskanowanie kodu QR lub wpisanie kodu parowania. W pełni samoobsługowo przez API — bez konta Meta Business. |
cloud_api | Numer WhatsApp Business (sprzedawany jako WABA) zarejestrowany w Meta, w oficjalnym Cloud API. | Meta Embedded Signup, nie to API. |
Oba typy wysyłają i odbierają wiadomości przez te same endpointy, z tymi samymi treściami żądań i tymi samymi dwoma identyfikatorami wiadomości. Jeśli zakładali Państwo, że połączenie QR z własnej aplikacji jest niemożliwe: jest możliwe.
Czym naprawdę się różnią
Webhooks. Zdarzenia są wysyłane tylko dla połączeń qr. Połączenia
cloud_api nie wysyłają dziś żadnych webhooks — w ich przypadku należy
odpytywać GET /messages i GET /connections/{id}.
Parowanie. POST /connections/{id}/pairing-code dotyczy wyłącznie qr.
Numer cloud_api odpowiada 409 not_supported_for_provider; to odmowa
trwała, więc nie należy ponawiać żądania.
Czas wysyłki. Wysyłka przez qr zwykle trwa 1–7 s (do ok. 20 s przy
długim tekście), a w ścieżce samonaprawy może potrwać ok. 2,5 minuty. Wysyłka
przez cloud_api trwa około 1 s. Limit czasu HTTP należy dobrać do wolniejszego
przypadku: co najmniej 180 s.
Oznaczanie jako przeczytane. POST /messages/read oznacza cały czat w
połączeniu qr. Połączenie cloud_api może oznaczyć tylko jedną konkretną
wiadomość, dlatego żądanie zawierające wyłącznie phone automatycznie wskazuje
Państwa ostatnią wiadomość przychodzącą z tego numeru.
Wolumen. Nowo sparowany numer qr ma przez 72 godziny limity rozgrzewkowe
na liczbę wiadomości w ciągu godziny; przekroczenie limitu zwraca
429 warmup_limited. Zob.
Licences & trial.
Stabilność sesji. Połączenie qr jest powiązane z telefonem, który musi
pozostać osiągalny, więc może się rozłączyć i wymagać ponownego parowania — do
tego służą connection.disconnected / connection.connected oraz flaga
needs_reconnect. Połączenie cloud_api niczego nie skanuje i nie ma tego
rodzaju awarii.
Nieznani dostawcy nie przedostają się dalej
provider przyjmuje wartość null zamiast przepuszczać nierozpoznaną wartość.
Jeśli kiedykolwiek dodany zostanie nowy rodzaj połączenia, zostanie tu
świadomie opisany, więc rozgałęzianie logiki po qr / cloud_api jest dziś
bezpieczne — ale null należy traktować jako „rodzaj nieznany temu klientowi”,
a nie powodować przez niego awarii.
Przestrzenie robocze
Klucz należy do dokładnie jednej przestrzeni roboczej. Co to oznacza dla aplikacji wielodostępnych i czym portal Bitrix24 różni się od samodzielnej przestrzeni roboczej.
Licencje i okres próbny
7-dniowy bezpłatny okres próbny dla każdego numeru, a potem miesięczna licencja na numer. Czym jest slot i co się dzieje, gdy wygasa.