
Bird heeft onlangs Programmable Conversations gelanceerd. Hiermee kunnen bedrijven communicatieplatforms zoals WhatsApp, Messenger en SMS in hun systemen integreren — met behulp van een enkele API.
Bird heeft onlangs Programmable Conversations gelanceerd. Het laat bedrijven communicatiesystemen zoals WhatsApp, Messenger en SMS integreren in hun systemen — met behulp van een enkele API.
Ik wilde het eens uitproberen, dus ik bouwde een WhatsApp-bot to-do lijst, want wie heeft er geen behoefte aan een geautomatiseerde to-do lijst om hun dag te organiseren? Het klinkt misschien ingewikkeld, maar het was eigenlijk eenvoudig, en ik wil je er alles over vertellen.
Nu werk ik bij MessageBird, dus ik kon er meteen induiken en beginnen bouwen. Als je dit probeert, moet je vroege toegang aanvragen. Maar zodra je een WhatsApp-kanaal hebt ingesteld, kun je inloggen op het Dashboard op de MessageBird-website en aan de slag gaan.
Het eerste dat ik deed, was de documentatie lezen. Ik leerde dat, om berichten van de bot te ontvangen, ik een webhook zou moeten gebruiken. Dit betekende dat mijn bot toegankelijk zou moeten zijn vanaf het internet. Bij het bouwen van API's zoals deze is het belangrijk om best practices voor API-versiebeheer te volgen voor onderhoudbaarheid. Omdat ik net begon met coderen, besloot ik ngrok te gebruiken. Het creëert een tunnel van het publieke internet naar je lokale poort 5007. Aan de slag!
ngrok http 5007 -region eu -subdomain todobot
Vervolgens moest ik een oproep doen naar de Programmable Conversations API om de webhook te creëren. Het is een POST naar https://conversations.messagebird.com/v1/webhooks
en het ziet er zo uit:
Mooi. Nu gaat de Conversations API een POST-verzoek doen naar:
https://todobot.eu.ngrok.io/create-hook
telkens wanneer er een nieuw bericht wordt aangemaakt op het WhatsApp-kanaal dat je eerder hebt ingesteld.
Dit is hoe een webhook payload eruit ziet:
We willen die berichten beantwoorden. Laten we beginnen met ze echoën, wat zeg je ervan?
Nu, voor het interessante gedeelte. Doe een POST-verzoek naar:
https://conversations.messagebird.com/v1/conversations/<conversationID>/messages
om het verzoek te beantwoorden.
Daar. Dit is alles wat je nodig hebt om een bot te maken die zich gedraagt als een 5-jarige mens.
Laten we nu een stap verder gaan en de hele to-do lijst bouwen. Pas eerst de createHookHandler functie een beetje aan zodat het de nieuwe handleMessage functie aanroept in plaats van te reageren.
handle zal op een simplistische manier de berichten ontleden, wat werk doen, en de reactie kiezen. Laten we kijken naar het “add” commando:
Hier stellen we in: lijst := manager.fetch(whp.Conversation.ID). Kortom, “manager” is een concurrerend veilige map die conversatie-ID's toewijst aan to-do lijsten.
Een to-do lijst is een concurrerend veilige string-slice. Alles in het geheugen!
Nog een belangrijk ding! Je kunt conversaties archiveren. In sommige applicaties, zoals CRM's, is het belangrijk om bepaalde interacties bij te houden — om de effectiviteit van klantenservicemedewerkers te volgen, bijvoorbeeld. De Conversations API laat je een conversatie archiveren om het onderwerp te “sluiten”. Als de gebruiker/klant een nieuw bericht stuurt, zal de Conversations API automatisch een nieuw onderwerp openen.
Bovendien. Door een PATCH-verzoek te doen naar https://conversations.messagebird.com/v1/conversations/{id}
met de juiste status in de body kun je de conversatie met die id archiveren. We doen dit met het “bye” commando:
archiveConversation zal de PATCH-aanvraag doen en manager.close(whp.Conversation.ID) zal de to-do lijstconversatie verwijderen.
Maar hé, Programmable Conversations is een omni-channel oplossing. Wat als je de code van de bot wilt hergebruiken voor een ander platform, zoals WeChat? Deze multi-channel aanpak maakt deel uit van de strategie voor het afwenden van aanvragen naar goedkopere kanalen. Hoe zou je dat aanpakken?
Maak gewoon een nieuwe webhook om dat kanaal te targeten! Een webhook die verzoeken stuurt naar dezelfde https://todobot.eu.ngrok.io/create-hook
url die we voor WhatsApp gebruikten!
Dit zal werken omdat de handler-code altijd het conversationID uit de webhook payload gebruikt om de berichten te beantwoorden in plaats van een hardcoded channelID. De Conversations API van MessageBird bepaalt automatisch het kanaal voor de conversatie om je bericht over te sturen.
Wil je je eigen bot bouwen? Bekijk de volledige code op Github: Wabot op Github, vraag vroege toegang tot WhatsApp aan door de WhatsApp-pagina te bezoeken en op de knop 'Contact Sales' te klikken om het formulier in te vullen. Veel plezier met botten!