Najważniejsze wnioski
- Programmable Conversations API od Bird łączy WhatsApp, Messenger i SMS w jedną warstwę komunikacyjną, upraszczając tworzenie botów wielokanałowych.
- Możesz szybko stworzyć prototyp bota WhatsApp do listy zadań, korzystając z webhooków i prostych żądań POST.
- Narzędzia takie jak ngrok pozwalają udostępnić lokalny serwer do testowania webhooków bez skomplikowanej konfiguracji hostingu.
- API obsługuje rozmowy w wielu kanałach, umożliwiając jedną bazę logiki dla WhatsApp, WeChat i innych aplikacji.
- Użyj endpointu archiveConversation, aby zamykać rozmowy lub “topics,” idealny do obsługi zgłoszeń lub śledzenia przepływu pracy.
- Logika bota może bezpiecznie zarządzać równoczesnymi rozmowami w pamięci za pomocą prostej struktury danych.
- Ten sam handler webhooków działa we wszystkich kanałach, a Bird automatycznie kieruje odpowiedzi na podstawie identyfikatora rozmowy źródłowej.
Bird niedawno uruchomił Programmable Conversations. Pozwala firmom integrować platformy komunikacyjne, takie jak WhatsApp, Messenger i SMS, w swoich systemach, używając jednego API.
Chciałem to wypróbować, więc zbudowałem bota WhatsApp z listą zadań, bo kto nie potrzebuje zautomatyzowanej listy zadań do organizacji dnia? Może to brzmieć skomplikowanie, ale w rzeczywistości było łatwe i chętnie opowiem o całym procesie.
Pracuję w MessageBird, więc mogłem od razu zacząć budować. Jeśli chcesz to wypróbować, musisz poprosić o wczesny dostęp. Gdy skonfigurujesz kanał WhatsApp, możesz zalogować się do panelu na stronie MessageBird i zacząć.
Konfiguracja środowiska bota WhatsApp
Pierwszą rzeczą, którą zrobiłem, było przeczytanie dokumentacji. Dowiedziałem się, że aby odbierać wiadomości od bota, muszę użyć webhooka. Oznaczało to, że bot musi być dostępny z internetu. Przy tworzeniu takich API warto stosować najlepsze praktyki wersjonowania API, aby ułatwić utrzymanie kodu. Ponieważ dopiero zaczynałem pisać kod, zdecydowałem się użyć ngrok. Tworzy tunel z publicznego internetu do Twojego ulubionego localhost na porcie 5007. Do dzieła!
ngrok http 5007 -region eu -subdomain todobot
Tworzenie webhooka i łączenie z Bird
Następnie musiałem wywołać Programmable Conversations API, aby utworzyć webhook. To żądanie POST do https://conversations.messagebird.com/v1/webhooks, które wygląda mniej więcej tak:
Świetnie. Teraz Conversations API będzie wysyłać żądanie POST do:
https://todobot.eu.ngrok.io/create-hook za każdym razem, gdy na skonfigurowanym wcześniej kanale WhatsApp pojawi się nowa wiadomość.
Tak wygląda payload webhooka:
Chcemy odpowiadać na te wiadomości. Zacznijmy od ich powtarzania (echo), co Ty na to?
Wysyłanie odpowiedzi i obsługa wiadomości
Teraz najciekawsza część. Wyślij żądanie POST do:
https://conversations.messagebird.com/v1/conversations/<conversationID>/messages, aby odpowiedzieć na żądanie.
Gotowe. To wszystko, czego potrzebujesz, żeby stworzyć bota zachowującego się jak 5-letnie dziecko.
Oto dlaczego korzystanie z Conversations API od Bird sprawia, że tworzenie botów WhatsApp jest szybkie i skalowalne:
| Funkcja | Co rozwiązuje |
|---|---|
| Ujednolicony identyfikator rozmowy | Utrzymuj jeden wątek w aplikacjach takich jak WhatsApp, WeChat, Messenger |
| Jedno API dla wszystkich kanałów | Wykorzystaj logikę bota bez przepisywania jej dla każdej platformy |
| Automatyzacja oparta na webhookach | Szybka obsługa odpowiedzi bez odpytywania |
| Archiwizacja i otwieranie tematów | Porządkuj historię zgłoszeń i przepływy pracy |
| Struktura bezpieczna współbieżnie | Obsługuj wiele czatów jednocześnie w sposób niezawodny |
Przejdźmy teraz do budowy pełnej listy zadań. Najpierw zmodyfikuj nieco funkcję createHookHandler, tak aby wywoływała nową funkcję handleMessage zamiast respond.
handle w uproszczony sposób parsuje wiadomości, wykonuje pewne operacje i wybiera odpowiedź. Przyjrzyjmy się poleceniu “add”:
Tutaj konfigurujemy: list := manager.fetch(whp.Conversation.ID). “manager” to współbieżnie bezpieczna mapa, która mapuje identyfikatory rozmów na listy zadań.
Lista zadań to współbieżnie bezpieczny slice stringów. Wszystko w pamięci!
Archiwizacja rozmów i skalowanie bota
Kolejna ważna rzecz! Możesz archiwizować rozmowy. W niektórych aplikacjach, na przykład CRM-ach, ważne jest śledzenie określonych interakcji, choćby po to, by mierzyć skuteczność pracowników obsługi klienta. Conversations API pozwala zarchiwizować rozmowę, aby “close” temat. Jeśli użytkownik/klient wyśle kolejną wiadomość, Conversations API automatycznie otworzy nowy temat.
Zarządzanie cyklem życia rozmowy
Ponadto żądanie PATCH do https://conversations.messagebird.com/v1/conversations/{id} z odpowiednim statusem w treści pozwala zarchiwizować rozmowę o danym identyfikatorze. Robimy to za pomocą polecenia “bye”:
archiveConversation wykona żądanie PATCH, a manager.close(whp.Conversation.ID) usunie rozmowę z listy zadań.
Ale hej, Programmable Conversations to rozwiązanie omnikanałowe. Co, jeśli chcesz ponownie wykorzystać kod bota na innej platformie, np. WeChat? To wielokanałowe podejście jest częścią strategii przekierowywania zapytań na tańsze kanały. Jak to zrobić?
Po prostu utwórz nowy webhook skierowany na ten kanał! Webhook, który wysyła żądania pod ten sam adres https://todobot.eu.ngrok.io/create-hook, którego użyliśmy dla WhatsApp!
To zadziała, ponieważ kod handlera zawsze używa conversationID z payloadu webhooka do odpowiadania na wiadomości, zamiast zakodowanego na stałe channelID. Conversations API od MessageBird automatycznie określi kanał rozmowy, przez który ma wysłać wiadomość.
Chcesz zbudować własnego bota? Zerknij na pełny kod na Githubie: Wabot na Githubie, poproś o wczesny dostęp do WhatsApp, odwiedzając stronę WhatsApp i klikając przycisk Contact Sales, aby wypełnić formularz. Udanego botowania!
Pytania i odpowiedzi
Jak trudno jest zbudować bota WhatsApp przy użyciu API od Bird?
To zaskakująco proste. Za pomocą webhooka i kilku wywołań API możesz zbudować działającego bota, który odczytuje i odpowiada na wiadomości w ciągu kilku minut.
Czy potrzebuję specjalnej konfiguracji, żeby odbierać wiadomości?
Tak, bot musi być dostępny z internetu. Narzędzia takie jak ngrok pomagają utworzyć bezpieczny tunel z Twojej lokalnej maszyny.
Czy mogę użyć tego samego kodu dla różnych aplikacji do przesyłania wiadomości?
Jak najbardziej. Conversations API abstrahuje kanały, więc Twój bot może działać na WhatsApp, WeChat lub Messengerze, korzystając z identycznej logiki.
Jak zamknąć lub zresetować wątek czatu?
Wyślij żądanie PATCH do endpointu rozmowy z odpowiednim statusem, aby ją zarchiwizować. Każda nowa wiadomość automatycznie otwiera nową rozmowę.
Gdzie mogę znaleźć przykładowy kod?
O: Pełne działające demo, Wabot na GitHubie, pokazuje implementację obsługi wiadomości, współbieżności i archiwizacji.
