Meta Tech Provider

Node.js बाट WhatsApp म्यासेज पठाउनुहोस् र प्राप्त गर्नुहोस्

प्राप्ति भनेको Meta को प्रमाणीकरण GET को जवाफ दिने र POST स्वीकार गर्ने रुट हो। पठाउन फोन नम्बरको id र टोकनसहित Cloud API मा फेच कल गर्नुहोस्। हाम्रो कुनै SDK छैन र इन्स्टल गर्नुपर्ने केही छैन।

2 handlers

Meta को प्रमाणीकरणका लागि GET र इभेन्टका लागि POST।

24 hours

ग्राहकको म्यासेजपछि फ्री टेक्स्ट पठाउन मिल्ने समयको विन्डो।

131047

त्यो विन्डोबाहिर फ्री टेक्स्ट पठाउँदा फर्किने त्रुटि।

Node मा म्यासेज कसरी प्राप्त गर्ने?

Express, Fastify, Next रुट ह्यान्डलर वा सामान्य सर्भरमा दुईवटा मेथड भएको एउटै रुट राख्नुहोस्।

GET ले Meta को प्रमाणीकरणको जवाफ दिन्छ। क्वेरीबाट hub.mode, hub.verify_token र hub.challenge पढ्नुहोस्, टोकन आफ्नो टोकनसँग तुलना गर्नुहोस् र challenge लाई सादा टेक्स्टका रूपमा फर्काउनुहोस्। यसलाई JSON का रूपमा फर्काउनु सामान्य गल्ती हो। त्यसले सही देखिने तर कुनै कुरा प्राप्त नगर्ने एन्डपोइन्ट बनाउँछ।

POST ले इभेन्टहरू प्राप्त गर्छ। तुरुन्तै 200 जवाफ दिनुहोस् र त्यसपछि प्रक्रिया गर्नुहोस्। ढिलो भएका अनुरोध Meta ले पुनः पठाउँछ, त्यसैले जवाफ दिनुअघि काम गर्ने ह्यान्डलरले एउटै म्यासेज एकभन्दा बढी पटक देख्छ। विशेषगरी सर्भरलेसमा, पहिले जवाफ दिएर कामलाई क्युमा राख्नु नै कोल्ड स्टार्टलाई डुप्लिकेट बन्नबाट रोक्ने उपाय हो।

कसरी पठाउने?

फोन नम्बरको id का लागि Cloud API messages endpoint मा टोकनलाई bearer हेडरका रूपमा राखेर फेच गर्नुहोस्।

यसमा हाम्रो उत्पादनसँग सम्बन्धित केही विशेष छैन, त्यसैले अनुरोध Meta को आफ्नै दस्तावेजसँग ठ्याक्कै मिल्छ र सिक्न वा त्यसैमा बाँधिनुपर्ने कुनै wrapper छैन। दुवै मान ड्यासबोर्डमा छन्। कुनै सहायकले जडान गरिरहेको भए get_api_credentials ले MCP कनेक्टरमार्फत ती मान फर्काउँछ।

बडी समयअनुसार फरक हुन्छ। ग्राहकको अन्तिम inbound म्यासेजपछि 24 घण्टाभित्र text object पठाउनुहोस्। त्यसबाहिर स्वीकृत टेम्प्लेट नाम र भाषासहित template object पठाउनुहोस्। केवल टेक्स्ट पठाउने कोडले सबै परीक्षण पार गर्छ, तर राति आएको पहिलो म्यासेजमा असफल हुन्छ।

सर्भरलेसमा के फरक हुन्छ?

दुईवटा कुरा छन्, र दुवै काम सकिनुअघि फङ्सन समाप्त हुने विषयसँग सम्बन्धित छन्।

200 फर्काएर त्यसपछि प्रक्रिया जारी राख्नु, प्रतिक्रिया दिनेबित्तिकै फ्रिज हुने फङ्सनमा टिक्दैन। प्रतिक्रिया पछि काम जारी राख्न तपाईंको प्लेटफर्मले दिएको सुविधा प्रयोग गर्नुहोस्, वा पेलोडलाई क्युमा पठाएर छुट्टै फङ्सनबाट प्रक्रिया गराउनुहोस्। Meta लाई छिटो स्वीकृति मात्र चाहिन्छ, काम सकिएको चाहिँदैन।

कोल्ड स्टार्टले ढिलो प्रतिक्रिया आउने सम्भावना पनि बढाउँछ, जसले थप रिट्राइ र डुप्लिकेट ल्याउँछ। wamid म्यासेज id का आधारमा डुप्लिकेट हटाउनु वैकल्पिक होइन। यही संरचनालाई भरपर्दो बनाउने मुख्य कुरा यही हो।

सामान्य गल्तीहरू

  • च्यालेन्जलाई कच्चा बडीका रूपमा नभई JSON का रूपमा फर्काउने।
  • 200 जवाफ दिनुअघि काम गर्ने। सर्भरलेसमा प्रतिक्रिया दिनेबित्तिकै फङ्सन फ्रिज हुन सक्छ।
  • डुप्लिकेट हटाउने प्रक्रिया छोड्ने। Meta ले डिजाइनअनुसार रिट्राइ गर्छ र डुप्लिकेट सामान्य कुरा हुन्, अपवाद होइनन्।
EasyCoexistence मार्फत यो काम

easycoexistence.com मा नम्बर जडान गर्नुहोस्, वेबहुक गन्तव्य आफ्नो रुटमा सेट गर्नुहोस् र ड्यासबोर्डबाट phone number id तथा टोकन लिनुहोस्। प्रति नम्बर प्रतिमहिना US$ 9 बाट सुरु भएर धेरै नम्बरमा US$ 2 सम्म घट्छ, पहिलो 7 दिन निःशुल्क छन्।

बारम्बार सोधिने प्रश्नहरू

के मलाई लाइब्रेरी चाहिन्छ?

चाहिँदैन। एउटा रुट र फेच पर्याप्त छन्, र कल Meta को दस्तावेजसँग ठ्याक्कै मिल्छ।

के यो Vercel वा Lambda मा चल्छ?

चल्छ। सामान्य सर्भरलेस सावधानी अपनाउनुहोस्: पहिले स्वीकृति दिनुहोस्, त्यसपछि इनलाइन नगरी क्यु वा ब्याकग्राउन्ड मेकानिजममार्फत प्रक्रिया गर्नुहोस्।

अनुरोध Meta बाट आएको हो भनेर कसरी प्रमाणीकरण गर्ने?

सिग्नेचर हेडरलाई आफ्नो एप सेक्रेटसँग तुलना गर्नुहोस्। एन्डपोइन्ट सार्वजनिक हुनेबित्तिकै यो गर्नु उपयोगी हुन्छ।

के म TypeScript प्रयोग गर्न सक्छु?

सक्नुहुन्छ। हाम्रो तर्फबाट टाइप गर्नुपर्ने केही छैन, किनकि पेलोड Meta को हो र Meta ले नै दस्तावेजीकरण गरेको छ।

पढ्दै जानुहोस्

सुरु गर्न तयार हुनुहुन्छ?

महिनौं होइन, केही मिनेटमै WhatsApp Coexistence सेट अप गर्नुहोस्। एप फोनमा चलिरहन्छ।

निःशुल्क ट्रायल सुरु गर्नुहोस्

प्रमाणीकरण गरिएको

Node.js बाट WhatsApp पठाउनुहोस्