WhatsApp

Jaka jest różnica między whatsapp.failed a whatsapp.rejected?

Zdarzenie whatsapp.rejected oznacza, że Bird zatrzymał wiadomość przed naliczeniem opłaty; whatsapp.failed rejestruje błąd podczas wysyłania lub dostarczania.

Gdy wiadomość kończy swój cykl, sprawdź jej końcowe zdarzenie i kod błędu, zanim zdecydujesz, czy spróbować ponownie, czy zbadać dostarczanie.

Co oznacza whatsapp.rejected?

Bird zatrzymał wiadomość przed wysłaniem i nie naliczył za nią opłaty.

Weryfikacja odbiorcy i naliczanie opłaty mogą skutkować odrzuceniem. Użyj towarzyszącego kodu, aby wybrać kolejne działanie:

KodPrzyczynaKolejne działanie
undeliverableBrak użytecznego adresu odbiorcyPopraw odbiorcę
recipient_suppressedOdbiorca jest wyciszonyUszanuj rezygnację i zbadaj zapisy o zgodach
price_not_foundBird nie może wycenić wysyłkiSkontaktuj się ze wsparciem, podając identyfikator wiadomości
insufficient_balancePortfel nie pokrywa wysyłki lub organizacja nie może zostać obciążonaRozwiąż problem z płatnościami przed ponowną wysyłką

Niewyceniona wysyłka jest odrzucana, a nie traktowana jako darmowa. Powtórzenie tego samego żądania nie dostarczy brakującej ceny.

Znacznik czasu odrzucenia używa pierwotnego czasu akceptacji. Stosuj go konsekwentnie w raportach, aby opóźnienie w kolejce nie przesunęło odrzucenia do późniejszego okresu raportowania.

Co oznacza whatsapp.failed?

Wiadomość nie powiodła się podczas wysyłania lub dostarczania, a przyczyna została zapisana w szczegółach błędu.

Meta może zgłosić błąd przez callback dostarczania. Może też odrzucić żądanie wysyłki Bird przed przyjęciem wiadomości do dostarczenia.

Bird rejestruje internal_error, gdy numer wysyłający nie ma użytecznych poświadczeń lub przetwarzanie wyczerpie ponowne próby. meta_error_code to zarejestrowany kod błędu Meta. Kod Bird nie zawiera żadnego.

Wyczerpanie ponownych prób może obejmować błędy transportowe lub awarie po stronie dostawcy. Nie wnioskuj na podstawie samego internal_error, że Meta nigdy nie otrzymał żądania.

Sprawdź opis i połączenie numeru wysyłającego. Podaj wsparciu identyfikator wiadomości, gdy przyczyna pozostaje niejasna.

Błąd może wystąpić po naliczeniu opłaty. Sprawdź cost wiadomości zamiast zakładać, że każda nieudana wysyłka była darmowa.

Dlaczego undeliverable pojawia się w obu zdarzeniach?

W przypadku odrzucenia Bird nie mógł zaadresować odbiorcy. W przypadku błędu jest to znormalizowany wynik Bird dla odmowy ze strony Meta.

Kod błędu ma szersze znaczenie niż stwierdzenie, że telefon nie może odbierać wiadomości. Bird używa również undeliverable, gdy kod Meta nie ma bardziej szczegółowego odwzorowania.

Odczytaj meta_error_code, aby poznać zarejestrowany kod Meta, i description, aby uzyskać towarzyszące wyjaśnienie. Błąd zgłoszony bez szczegółów nadal otrzymuje undeliverable.

Inne znormalizowane kody błędów wskazują bardziej konkretne problemy:

KodCo zbadać
service_window_expiredCzy treść w dowolnej formie została wysłana poza oknem serwisowym
rate_limitedLimity wysyłania lub odbiorców Meta
media_rejectedZasób medialny odrzucony przez Meta
internal_errorZarejestrowany błąd przetwarzania lub wysyłania Bird

Zachowuj nieznane kody w logach. Zestaw kodów może się rozrastać, więc nierozpoznana wartość nie powinna unieważniać skądinąd poprawnego zdarzenia.

Jak mój handler zdarzeń powinien interpretować wynik?

Rozgałęziaj logikę na podstawie typu zdarzenia i jego kodu błędu łącznie.

Odrzucona wiadomość nie przechodzi do zdarzenia wysłania. W przypadku błędu wiadomości potrzebne są szczegóły błędu, aby odróżnić awarię wewnętrzną od odpowiedzi Meta.

Trzymaj status dostarczenia oddzielnie od zaangażowania. Zdarzenie whatsapp.read rejestruje odczytanie bez zastępowania statusu dostarczenia wiadomości.

Bird emituje własne whatsapp.sent po udanym wysłaniu. Nie tworzy dodatkowego zdarzenia na podstawie osobnego callbacku statusu wysłania od Meta.

Weryfikacja szablonów używa innego zestawu statusów. Gdy problemem jest zatwierdzenie, sprawdź język szablonu zamiast tych wyników wiadomości.

Co powinienem zrobić przed kolejną wysyłką?

Popraw zarejestrowaną przyczynę przed wysłaniem kolejnej wiadomości.

W przypadku service_window_expired użyj zatwierdzonego szablonu lub poczekaj, aż wiadomość klienta ponownie otworzy okno serwisowe.

W przypadku wyciszenia uszanuj wybór odbiorcy. Usunięcie rezygnacji zignorowałoby preferencję odbiorcy i stworzyłoby ryzyko niezgodności.

W przypadku problemu z płatnościami lub połączeniem nadawcy najpierw rozwiąż ten problem z kontem. Zachowaj oryginalny identyfikator wiadomości, aby wsparcie mogło zbadać nieudaną próbę.

Jeśli numer lub konto Business Account jest ograniczone lub zablokowane, wykonaj kroki dotyczące ograniczeń konta i odwołań przed ponowną próbą.

W przypadku niepewnego błędu transportowego zbadaj sytuację przed utworzeniem kolejnej wiadomości. Nowa wysyłka może zduplikować żądanie, którego wynik nie został zaobserwowany.

W skrócie

  1. Odrzucenie nie jest opłacane.

    Bird zatrzymuje wiadomość przed wysłaniem, gdy weryfikacja odbiorcy lub naliczanie opłaty uniemożliwia wysyłkę.

  2. Błąd może pochodzić od Bird lub Meta.

    Sprawdź zarejestrowany błąd, zanim zdecydujesz, co badać. internal_error nie zawiera kodu błędu Meta.

  3. Interpretuj zdarzenie i kod łącznie.

    undeliverable pojawia się w obu zdarzeniach. Jego znaczenie zależy od miejsca, w którym wiadomość została zatrzymana.

  4. Wybierz sposób naprawy na podstawie przyczyny.

    Popraw problem z odbiorcą, kontem, treścią lub czasem przed kolejną próbą wysyłki. Zachowaj nieznane kody do dalszego zbadania.

Buduj na tej samej sieci.

Testowy klucz API otrzymasz od razu. Dostęp produkcyjny odblokujesz po dodaniu metody płatności i zweryfikowaniu nadawcy.

Twój kolejny pomysł.
Gotowy do połączenia.