मुख्य बातें
- Bird का Programmable Conversations API WhatsApp, Messenger और SMS को एक ही संचार लेयर में एकीकृत करता है, जिससे मल्टी-चैनल बॉट डेवलपमेंट सरल हो जाता है।
- आप webhooks और साधारण POST रिक्वेस्ट का उपयोग करके WhatsApp टू-डू लिस्ट बॉट का तेज़ी से प्रोटोटाइप बना सकते हैं।
- ngrok जैसे टूल आपको जटिल होस्टिंग सेटअप के बिना webhook टेस्टिंग के लिए अपने लोकल सर्वर को एक्सपोज़ करने देते हैं।
- API कई चैनलों पर बातचीत को हैंडल करता है, जिससे WhatsApp, WeChat और अन्य ऐप्स के लिए एक ही लॉजिक बेस काम करता है।
- बातचीत बंद करने के लिए archiveConversation एंडपॉइंट का उपयोग करें, “topics,” सपोर्ट या वर्कफ़्लो ट्रैकिंग के लिए आदर्श है।
- बॉट लॉजिक एक साधारण डेटा स्ट्रक्चर के साथ मेमोरी में कंकरेंट बातचीत को सुरक्षित रूप से मैनेज कर सकता है।
- वही webhook हैंडलर सभी चैनलों पर काम करता है; Bird ओरिजिनेटिंग conversation ID के आधार पर रिप्लाई को अपने आप रूट करता है।
Bird ने हाल ही में Programmable Conversations लॉन्च किया। यह कंपनियों को WhatsApp, Messenger और SMS जैसे संचार प्लेटफ़ॉर्म को एक ही API का उपयोग करके अपने सिस्टम में जोड़ने देता है।
मैं इसे आज़माना चाहता था, इसलिए मैंने एक WhatsApp बॉट टू-डू लिस्ट बनाई, क्योंकि अपने दिन को व्यवस्थित करने के लिए एक ऑटोमेटेड टू-डू लिस्ट किसे नहीं चाहिए? यह जटिल लग सकता है, लेकिन वास्तव में यह आसान था, और मैं आपको इसके बारे में पूरी जानकारी देना चाहता हूँ।
मैं MessageBird में काम करता हूँ, इसलिए मैं सीधे बनाना शुरू कर सकता था। अगर आप यह आज़माते हैं, तो आपको अर्ली एक्सेस का अनुरोध करना होगा। लेकिन एक बार जब आप WhatsApp चैनल के साथ सेटअप हो जाएँ, तो आप MessageBird वेबसाइट पर डैशबोर्ड में लॉग इन करके शुरू कर सकते हैं।
अपने WhatsApp बॉट का एनवायरनमेंट सेटअप करना
सबसे पहले मैंने डॉक्स पढ़े। मुझे पता चला कि बॉट से मैसेज प्राप्त करने के लिए मुझे webhook का उपयोग करना होगा। इसका मतलब था कि मेरे बॉट को इंटरनेट से एक्सेसिबल होना चाहिए। इस तरह की API बनाते समय, मेंटेनेबिलिटी के लिए API वर्शनिंग बेस्ट प्रैक्टिसेज़ का पालन करना ज़रूरी है। चूँकि मैंने अभी कोड करना शुरू ही किया था, मैंने ngrok का उपयोग करने का फ़ैसला किया। यह पब्लिक इंटरनेट से आपके प्यारे localhost पोर्ट 5007 तक एक टनल बनाता है। शुरू करें!
ngrok http 5007 -region eu -subdomain todobot
अपना webhook बनाना और Bird से कनेक्ट करना
इसके बाद, मुझे webhook बनाने के लिए Programmable Conversations API को कॉल करना था। यह https://conversations.messagebird.com/v1/webhooks पर एक POST है और यह कुछ इस तरह दिखता है:
बढ़िया। अब Conversations API इस पर एक POST रिक्वेस्ट करेगा:
https://todobot.eu.ngrok.io/create-hook जब भी आपके पहले सेटअप किए गए WhatsApp चैनल पर कोई नया मैसेज बनेगा।
एक webhook पेलोड कुछ इस तरह दिखता है:
हम उन मैसेज का जवाब देना चाहते हैं। चलिए उन्हें echo करके शुरू करते हैं, क्या कहते हैं?
रिस्पॉन्स भेजना और मैसेज हैंडल करना
अब, दिलचस्प हिस्सा आता है। इस पर एक POST रिक्वेस्ट करें:
https://conversations.messagebird.com/v1/conversations/<conversationID>/messages रिक्वेस्ट का जवाब देने के लिए।
बस। 5 साल के बच्चे जैसा व्यवहार करने वाला बॉट बनाने के लिए आपको बस इतना चाहिए।
यहाँ बताया गया है कि Bird के Conversations API का उपयोग WhatsApp बॉट डेवलपमेंट को तेज़ और स्केलेबल क्यों बनाता है:
| फ़ीचर | यह क्या समस्या हल करता है |
|---|---|
| यूनिफ़ाइड conversation ID | WhatsApp, WeChat, Messenger जैसे ऐप्स में एक ही थ्रेड बनाए रखें |
| सभी चैनलों के लिए एक API | हर प्लेटफ़ॉर्म के लिए दोबारा लिखे बिना बॉट लॉजिक को रीयूज़ करें |
| Webhook-ड्रिवन ऑटोमेशन | पोलिंग के बिना तेज़ रिस्पॉन्स हैंडलिंग |
| आर्काइव + टॉपिक दोबारा खोलें | सपोर्ट हिस्ट्री और वर्कफ़्लो व्यवस्थित करें |
| कंकरेंसी-सेफ़ स्ट्रक्चर | एक साथ कई चैट को भरोसेमंद तरीके से हैंडल करें |
अब, पूरी टू-डू लिस्ट बनाने की ओर बढ़ते हैं। सबसे पहले, createHookHandler फ़ंक्शन को थोड़ा मॉडिफ़ाई करें ताकि यह respond की बजाय नए handleMessage फ़ंक्शन को कॉल करे।
handle सरल तरीके से मैसेज पार्स करेगा, कुछ काम करेगा, और रिस्पॉन्स चुनेगा। आइए “add” कमांड देखें:
यहाँ, हमने सेटअप किया: list := manager.fetch(whp.Conversation.ID)। मूल रूप से, “manager” एक कंकरेंसी सेफ़ मैप है जो conversation ID को टू-डू लिस्ट से मैप करता है।
एक टू-डू लिस्ट एक कंकरेंसी सेफ़ स्ट्रिंग स्लाइस है। सब कुछ मेमोरी में!
बातचीत आर्काइव करना और अपने बॉट को स्केल करना
एक और ज़रूरी बात! आप बातचीत को आर्काइव कर सकते हैं। कुछ एप्लिकेशन में, जैसे CRM में, कुछ इंटरैक्शन को ट्रैक करना ज़रूरी होता है, उदाहरण के लिए, कस्टमर सपोर्ट कर्मचारियों की प्रभावशीलता को ट्रैक करने के लिए। Conversations API आपको टॉपिक “close” करने के लिए बातचीत को आर्काइव करने देता है। अगर यूज़र/कस्टमर कोई और मैसेज भेजता है, तो Conversations API अपने आप एक नया टॉपिक खोलेगा।
बातचीत के लाइफ़साइकल को मैनेज करना
इसके अलावा, बॉडी में सही स्टेटस के साथ https://conversations.messagebird.com/v1/conversations/{id} पर PATCH रिक्वेस्ट करने से आप उस id वाली बातचीत को आर्काइव कर सकते हैं। हम यह “bye” कमांड से करते हैं:
archiveConversation PATCH रिक्वेस्ट करेगा और manager.close(whp.Conversation.ID) टू-डू लिस्ट वाली बातचीत को हटा देगा।
लेकिन Programmable Conversations एक ऑम्नी-चैनल समाधान है। अगर आप बॉट के कोड को किसी अलग प्लेटफ़ॉर्म, जैसे WeChat, के लिए रीयूज़ करना चाहें तो? यह मल्टी-चैनल अप्रोच कम लागत वाले चैनलों पर पूछताछ डाइवर्ट करने की रणनीति का हिस्सा है। आप यह कैसे करेंगे?
बस उस चैनल को टारगेट करने के लिए एक नया webhook बनाएँ! एक webhook जो उसी https://todobot.eu.ngrok.io/create-hook url पर रिक्वेस्ट भेजता हो जो हमने WhatsApp के लिए इस्तेमाल किया था!
यह इसलिए काम करेगा क्योंकि हैंडलर कोड हमेशा मैसेज का जवाब देने के लिए हार्डकोडेड channelID की बजाय webhook पेलोड से conversationID का उपयोग करता है। MessageBird का Conversations API बातचीत के लिए आपका मैसेज भेजने हेतु चैनल अपने आप निर्धारित कर लेगा।
क्या आप अपना खुद का बॉट बनाना चाहते हैं? Github पर पूरा कोड देखें: Github पर Wabot, WhatsApp पेज पर जाकर और Contact Sales बटन पर क्लिक करके फ़ॉर्म भरकर WhatsApp के लिए अर्ली एक्सेस का अनुरोध करें। हैप्पी बॉटिंग!
सवाल-जवाब
Bird के API का उपयोग करके WhatsApp बॉट बनाना कितना मुश्किल है?
यह हैरानी की बात है कि यह आसान है। एक webhook और कुछ API कॉल से आप मिनटों में एक ऐसा बॉट बना सकते हैं जो मैसेज पढ़ता और जवाब देता है।
क्या मैसेज प्राप्त करने के लिए मुझे कोई विशेष सेटअप चाहिए?
हाँ, बॉट को इंटरनेट से एक्सेसिबल होना चाहिए। ngrok जैसे टूल आपकी लोकल मशीन से एक सिक्योर टनल बनाने में मदद करते हैं।
क्या मैं अलग-अलग मैसेजिंग ऐप्स के लिए एक ही कोडबेस का उपयोग कर सकता हूँ?
बिलकुल। Conversations API चैनलों को एब्स्ट्रैक्ट करता है, इसलिए आपका बॉट एक ही लॉजिक से WhatsApp, WeChat या Messenger पर चल सकता है।
मैं चैट थ्रेड को कैसे बंद या रीसेट करूँ?
बातचीत के एंडपॉइंट पर उचित स्टेटस के साथ PATCH रिक्वेस्ट भेजें ताकि उसे आर्काइव किया जा सके। कोई भी नया मैसेज अपने आप एक नई बातचीत खोलेगा।
मुझे उदाहरण कोड कहाँ मिलेगा?
उत्तर: पूरा वर्किंग डेमो, GitHub पर Wabot, मैसेज हैंडलिंग, कंकरेंसी और आर्काइविंग का इम्प्लीमेंटेशन दिखाता है।
