Sign inGet started

WhatsApp लिंक बटन

लिंक बटन WhatsApp मैसेज के नीचे एक टैप करने योग्य बटन लगाता है जो प्राप्तकर्ता के ब्राउज़र में URL खोलता है। इसका उपयोग तब करें जब अगला कदम वेब पर हो, जैसे चेकआउट पेज या वर्कशॉप की तारीखों का सेट, न कि चैट के भीतर। यदि प्राप्तकर्ता WhatsApp के अंदर किसी विकल्प का जवाब देता है, तो इसके बजाय रिप्लाई बटन या लिस्ट मेन्यू का उपयोग करें।

लिंक बटन भेजें

interactive.type को cta_url पर सेट करें, एक body_text और एक cta_url ऑब्जेक्ट के साथ जिसमें बटन का text और url हो:
const msg = await bird.whatsapp.send({
  to: "+16505551234",
  from: "+13124495648",
  interactive: {
    type: "cta_url",
    body_text: "Tap the button below to see the available dates.",
    cta_url: { text: "See dates", url: "https://example.com/workshops?click_id=a1b2c3" },
  },
});
console.log(msg.id, msg.status);
from हर सर्विस मैसेज पर आवश्यक है: आपके वर्कस्पेस का अपना नंबर, Bird-प्रबंधित नहीं। पूरा ढाँचा एक वैकल्पिक हेडर, फ़ुटर, और पहले के मैसेज का कोट जोड़ता है:
कोड उदाहरण
{
  "to": "+16505551234",
  "from": "+13124495648",
  "in_reply_to_message_id": "wam_01kya19eknftrs2s6p82asmvnh",
  "interactive": {
    "type": "cta_url",
    "header": {
      "type": "image",
      "url": "https://cdn.example.com/banners/workshop.png"
    },
    "body_text": "Tap the button below to see the available dates.",
    "footer_text": "Dates are subject to change.",
    "cta_url": {
      "text": "See dates",
      "url": "https://example.com/workshops?click_id=a1b2c3"
    }
  },
  "tags": [{ "name": "campaign", "value": "autumn-workshops" }],
  "metadata": { "order_id": "A-4192" }
}
in_reply_to_message_id उसी बातचीत में पहले के मैसेज को कोट करता है। रिज़ॉल्यूशन कैसे काम करता है और क्या छूट सकता है, इसके लिए हब का रिप्लाई को सहसंबद्ध करने हेतु मैसेज कोट करना देखें।
यह टाइप ठीक एक cta_url बटन भेजता है और इसके साथ buttons, list, या cards नहीं भेज सकता। साझा बटन शेप के लिए हब का buttons सेक्शन देखें, जिसे कैरोसेल कार्ड का अपना लिंक बटन भी पुन: उपयोग करता है।

हेडर और फ़ुटर

हेडर वैकल्पिक है, और यह चार में से एक शेप का होता है:
कोड उदाहरण
"header": { "type": "text",     "text": "New workshop dates" }
"header": { "type": "image",    "url": "https://cdn.example.com/a.png" }
"header": { "type": "video",    "url": "https://cdn.example.com/a.mp4" }
"header": { "type": "document", "url": "https://cdn.example.com/a.pdf" }
मीडिया हेडर (image, video, या document) अपनी फ़ाइल एक पब्लिक https URL के रूप में ले जाता है जिसे WhatsApp भेजते समय फ़ेच करता है, न कि अपलोड किए गए मीडिया हैंडल के रूप में। footer_text वैकल्पिक है और बटन के नीचे एक लाइन जोड़ता है।

सीमाएँ

फ़ील्डसीमा
cta_url बटनठीक एक
cta_url.text (लेबल)आवश्यक, 1 से 20 कैरेक्टर
cta_url.urlआवश्यक, 1 से 2,000 कैरेक्टर
body_textआवश्यक, 1 से 1,024 कैरेक्टर
footer_textवैकल्पिक, 1 से 60 कैरेक्टर
header.text1 से 60 कैरेक्टर
url पर 2,000-कैरेक्टर की सीमा Bird की अपनी है: Meta इस फ़ील्ड के लिए कोई लंबाई सीमा प्रकाशित नहीं करता। url यह भी सत्यापित करता है कि format: uri स्कीम सहित एक absolute पता हो, लेकिन Bird यह जाँच नहीं करता कि कौन सी स्कीम है: एक http:// पता Bird की वैलिडेशन पास कर जाता है, और यह केवल Meta तय करता है कि वह डिलीवर होगा या नहीं।

क्लिक क्या रिपोर्ट करता है

टैप करने पर पता प्राप्तकर्ता के ब्राउज़र में खुलता है और API के ज़रिए आपको कुछ वापस नहीं आता। लिंक बटन का टैप एक interactive_reply नहीं है: जो इनबाउंड मैपर interactive_reply बनाता है वह केवल रिप्लाई-बटन टैप और लिस्ट-रो टैप को हैंडल करता है, और cta_url लिंक का कोई समकक्ष इनबाउंड शेप नहीं है। जो आप देखते हैं वह सामान्य आउटबाउंड लाइफ़साइकल है, मैसेज के sent, delivered, और read स्टेटस, लेकिन read_at आपको बताता है कि मैसेज खोला गया, न कि बटन टैप किया गया। कोई क्लिक इवेंट नहीं, कोई टाइमस्टैम्प नहीं, और WhatsApp या Bird से कोई प्रति-प्राप्तकर्ता टैप सिग्नल नहीं।
एट्रिब्यूशन वापस पाने के दो तरीके, क्योंकि भेजना स्वयं आपको यह नहीं देगा:
  • लैंडिंग पेज को इंस्ट्रूमेंट करें। क्लिक का एकमात्र प्रमाण आपके अपने डेस्टिनेशन सर्वर पर उपलब्ध है, उस URL से जो आपने दिया था।
  • URL को स्वयं, प्रति प्राप्तकर्ता बदलें। आप जो url भेजते हैं वह एक लिटरल स्ट्रिंग है: Bird इसे स्टोर करता है और बिना किसी substitution या variable syntax के Meta को अपरिवर्तित पास करता है। यह एक सेंड के हर प्राप्तकर्ता के लिए समान होता है, इसलिए प्रति-प्राप्तकर्ता एट्रिब्यूशन का मतलब है कि आप अपना खुद का क्वेरी पैरामीटर जनरेट करें, जैसे ?click_id=<value>, और प्रति प्राप्तकर्ता एक POST /v1/whatsapp/messages कॉल करें। एंडपॉइंट पहले से प्रति कॉल एक to लेता है, इसलिए यह आपकी तरफ़ बुककीपिंग है, न कि API की कोई अनुपलब्ध सुविधा।
एक तीसरा विकल्प इस टाइप के बाहर मौजूद है: एक टेम्पलेट जिसमें url बटन वेरिएबल हो, WhatsApp स्वयं प्रति प्राप्तकर्ता पर्सनलाइज़ करता है, जो सेंड के button कंपोनेंट के ज़रिए दिया जाता है। वह वेरिएबल पते के अंत में होना चाहिए, {{1}} के रूप में लिखा जाता है, ताकि यह ट्रेलिंग पाथ सेगमेंट या क्वेरी वैल्यू बदल सके लेकिन होस्ट या URL के बीच का हिस्सा कभी नहीं। ट्रेड-ऑफ़: टेम्पलेट आपको प्रति-प्राप्तकर्ता URL और कस्टमर सर्विस विंडो के बाहर डिलीवरी देता है, लेकिन Meta की समीक्षा और एक निश्चित अनुमोदित शेप की कीमत पर, जबकि cta_url सेंड खुली विंडो के अंदर फ़्री-फ़ॉर्म, बिना समीक्षा भेजने की सुविधा देता है जहाँ URL आप स्वयं बदलते हैं।

सीमाएँ और विशेष स्थितियाँ

  • कस्टमर सर्विस विंडो खुली होनी चाहिए। लिंक बटन एक सर्विस मैसेज है, जो केवल खुली विंडो के अंदर डिलीवर किया जा सकता है; हब का कस्टमर सर्विस विंडो देखें। विंडो जाँच fail open होती है, इसलिए 202 इस बात का प्रमाण नहीं है कि भेजते समय विंडो वास्तव में खुली थी।
  • from आपके वर्कस्पेस का अपना नंबर होना चाहिए। इसे छोड़ना, या ऐसा नंबर देना जो कनेक्टेड सेंडर नहीं है, सेंड बनने से पहले ही रिजेक्ट हो जाता है।
  • URL पूरे सेंड के लिए स्टैटिक है, और हर प्राप्तकर्ता के लिए समान है। इस टाइप पर कोई प्रति-प्राप्तकर्ता वेरिएबल नहीं है। क्लिक को फिर भी एट्रिब्यूट कैसे करें, इसके लिए क्लिक क्या रिपोर्ट करता है देखें।
  • कोई टैप सिग्नल नहीं, कभी भी। लिंक बटन के टैप से कोई इनबाउंड मैसेज और कोई webhook इवेंट नहीं बनता। ऐसा फ़ीचर न बनाएँ जो केवल इस टाइप से क्लिक मेट्रिक्स का वादा करे।
  • Bird URL के शेप की जाँच करता है, स्कीम की नहीं। url स्कीम सहित एक absolute पता होना चाहिए, लेकिन Bird को https की आवश्यकता नहीं है, और Meta भी कोई स्कीम प्रतिबंध प्रकाशित नहीं करता। इसकी तुलना मीडिया हेडर के url से करें, जिसके लिए https आवश्यक बताया गया है।
  • एक मीडिया हेडर URL जिसे WhatsApp फ़ेच नहीं कर पाता, सेंड स्वीकार होने के बाद फ़ेल होता है। WhatsApp भेजते समय हेडर ऐसेट फ़ेच करता है और इसे 10 मिनट तक कैश करता है; साइन किए गए URL को सेंड से अधिक समय तक वैध रहना चाहिए, और पहुँच से बाहर URL असिंक्रोनस रूप से फ़ेल होता है, मैसेज के last_error पर media_rejected के साथ।
हब की errors तालिका में सूचीबद्ध कोई भी शेप जाँच इस टाइप पर फ़ायर नहीं हो सकती: वे लिस्ट की रो, buttons ऐरे, या कैरोसेल के कार्ड्स का निरीक्षण करती हैं, और cta_url मैसेज में इन तीनों में से कोई नहीं होता। शेप की गलती, जैसे 20 कैरेक्टर से अधिक का text लेबल, उन कोड्स में से किसी के बजाय जेनेरिक request-validation एरर के रूप में वापस आती है। जो कोट रिज़ॉल्व नहीं होता वह कुछ भी बनने या चार्ज होने से पहले रिक्वेस्ट को फ़ेल कर देता है: 404 E15071 जब id ऐसे मैसेज को नाम देती है जो इस वर्कस्पेस में नहीं है, 422 E15072 जब वह ऐसे मैसेज को नाम देती है जिसे कोट नहीं किया जा सकता। जो एरर किसी भी WhatsApp सेंड पर आ सकते हैं, बंद विंडो, अनुपलब्ध या अमान्य सेंडर, या अमान्य प्राप्तकर्ता, उनके लिए हब के errors और WhatsApp मैसेज भेजना देखें।

अगले कदम