WhatsApp authentication टेम्प्लेट
एक authentication टेम्पलेट वन-टाइम सत्यापन कोड डिलीवर करता है। जब आप टेम्पलेट बनाते हैं तो Meta इसका टेक्स्ट खुद तैयार करता है। भेजते समय, कोड को body पैरामीटर के रूप में दें।
भेजने से पहले
चुनें कि Bird-managed टेम्पलेट इस्तेमाल करना है या अपने बिज़नेस अकाउंट पर खुद टेम्पलेट बनाना है।
Bird के स्टॉक्ड कैटलॉग टेम्प्लेट, bird_otp और bird_otp_authifly, भेजने के लिए आपके किसी verification की ज़रूरत नहीं। ये टेम्प्लेट Bird के अपने WhatsApp Business Accounts पर होते हैं, और managed send पाथ आपके business की verification स्थिति कभी जाँचता नहीं।
जब कनेक्टेड बिज़नेस अकाउंट not_verified रिपोर्ट करता है, तो Bird authentication-टेम्पलेट बनाने या डुप्लिकेट करने से 412 E15043 WhatsAppTemplateBusinessNotVerified के साथ मना कर देता है। कनेक्टेड अकाउंट और उसकी नवीनतम सिंक्रोनाइज़्ड स्थिति जाँचें। सत्यापन प्रक्रिया और स्थिति प्रबंधन के लिए WhatsApp business verification देखें।
Utility और marketing टेम्प्लेट ऑथरिंग पर इस गेट का कोई असर नहीं पड़ता; आप अपनी verification स्थिति की परवाह किए बिना उन्हें बनाते और एडिट करते रह सकते हैं।
डैशबोर्ड में, bird CLI से, या MCP server के ज़रिए टेम्प्लेट ऑथर करें। पूरे फ़्लो के लिए WhatsApp टेम्प्लेट ऑथरिंग देखें।
सत्यापन कोड भेजना
कैटलॉग slug नाम वाले template ऑब्जेक्ट के साथ POST /v1/whatsapp/messages:
const msg = await bird.whatsapp.send({
to: "+14155550100",
template: {
slug: "bird_otp",
language: "en",
components: [{ type: "body", parameters: [{ type: "text", text: "481920" }] }],
},
});
console.log(msg.id, msg.status);msg = client.whatsapp.send(
to="+14155550100",
template="bird_otp",
language="en",
components=[{"type": "body", "parameters": [{"type": "text", "text": "481920"}]}],
)
print(msg.id, msg.status)package main
import (
"context"
"fmt"
"log"
"os"
bird "github.com/messagebird/bird-sdk-go"
"github.com/messagebird/bird-sdk-go/option"
)
func main() {
client, err := bird.NewClient(option.WithAPIKey(os.Getenv("BIRD_API_KEY")))
if err != nil {
log.Fatal(err)
}
code := "481920"
components := []bird.WhatsAppMessageTemplateComponent{{
Type: "body",
Parameters: &[]bird.WhatsAppMessageTemplateComponentParameter{{Type: "text", Text: &code}},
}}
msg, err := client.Whatsapp.Send(context.Background(), bird.WhatsappSendParams{
To: "+14155550100",
Template: "bird_otp",
Language: "en",
Components: components,
})
if err != nil {
log.Fatal(err)
}
fmt.Println(msg.Id, *msg.Status)
}$components = [
(new WhatsAppMessageTemplateComponent())
->setType('body')
->setParameters([
(new WhatsAppMessageTemplateComponentParameter())->setType('text')->setText('481920'),
]),
];
$message = $bird->whatsapp->send(
to: '+14155550100',
template: 'bird_otp',
language: 'en',
components: $components,
);
echo $message->getId(), ' ', $message->getStatus();bird whatsapp send \
--components '[{"parameters":[{"text":"481920","type":"text"}],"type":"body"}]' \
--language en \
--template bird_otp \
--to +14155550100curl -X POST "https://us1.platform.bird.com/v1/whatsapp/messages" \
-H "Authorization: Bearer $BIRD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "+14155550100",
"template": {
"slug": "bird_otp",
"language": "en",
"components": [
{
"type": "body",
"parameters": [
{
"type": "text",
"text": "481920"
}
]
}
]
}
}'इस कैटेगरी के लिए चार नियम विशेष हैं:
fromको छोड़ दें। Bird-managed टेम्प्लेट कैटेगरी और रीजन के आधार पर अपना sender खुद चुनता है, इसलिएfromसेट करने पर422E15018WhatsAppSenderNotAllowedमिलता है। यह free-form send के विपरीत है, जिसमेंfromज़रूरी होता है; अगर आप interactive-message पेजों से यहाँ आ रहे हैं तो यह याद रखने लायक बात है।toE.164 फ़ोन नंबर होना चाहिए। Authentication टेम्प्लेट business-scoped user ID पर नहीं भेजा जा सकता; वह422E15014WhatsAppRecipientNotSupportedForTemplateहै।- बॉडी में ठीक एक positional पैरामीटर होता है, कोड। शून्य पैरामीटर, या पैरामीटर को नाम देना,
422E15003WhatsAppTemplateParameterMismatchलौटाता है। Authentication एकमात्र कैटेगरी है जिसे Meta positionally लिखता है; बाकी हर कैटेगरी अपने पैरामीटर नाम से देती है। - किसी customer service विंडो की ज़रूरत नहीं। टेम्प्लेट सेंड विंडो-गेटेड नहीं होते, और यही कारण है कि सत्यापन कोड टेम्प्लेट मौजूद है: इसे उस व्यक्ति तक पहुँचना होता है जिसने आपको पहले कभी मैसेज नहीं किया।
टेम्पलेट कैटलॉग से bird_otp या bird_otp_authifly के लिए उपलब्ध भाषाएँ पढ़ें। अगर आपकी अनुरोधित भाषा उपलब्ध नहीं है, तो भेजना विफल हो जाता है; किसी दूसरी भाषा को उसकी जगह नहीं लगाया जाता।
Copy code बटन
Meta authentication टेम्प्लेट की बॉडी खुद लिखता है, एक प्रीसेट के रूप में जिसमें एक कोड प्लेसहोल्डर होता है, इसलिए आप टेक्स्ट की बजाय फ़्लैग देते हैं। सेंड में बटन कंपोनेंट वैकल्पिक है: अगर आप एक शामिल नहीं करते, तो Bird इसे आपके लिए जोड़ देता है, बॉडी वाला ही कोड लेकर। आप इसे खुद भी दे सकते हैं:
{ "type": "button", "parameters": [{ "type": "text", "text": "481920" }] }किसी भी तरह, WhatsApp तक ठीक एक बटन पहुँचता है, और वह copy-code बटन होता है: टैप करने पर कोड क्लिपबोर्ड पर कॉपी हो जाता है। Bird केवल copy_code सपोर्ट करता है; authentication टेम्प्लेट के लिए Meta जो अन्य दो बटन व्यवहार दस्तावेज़ित करता है, one-tap और zero-tap autofill, Bird पर आज उपलब्ध नहीं हैं।
टेम्प्लेट का बटन ऑथर करना भी उसी शेप का है: एक otp बटन, और टेम्प्लेट कोई अन्य बटन टाइप नहीं लेता। आप कॉपी लिखने की बजाय add_security_recommendation (एक boolean जो बॉडी में दिखता है) और code_expiration_minutes (1 से 90, फ़ुटर में दिखता है) देते हैं।
Meta authentication टेम्प्लेट में क्या अनुमति देता है
Meta authentication टेम्प्लेट की संरचना तय करता है और उसकी सामग्री की समीक्षा करता है: टेम्प्लेट में कहीं भी URL, मीडिया या इमोजी नहीं, और कोड पैरामीटर पर 15-कैरेक्टर की सीमा। यह कैटेगरी WhatsApp के मैसेज डिलीवर करने का तरीका भी बदलती है, इसे केवल प्राप्तकर्ता के प्राइमरी डिवाइस पर भेजकर। तय संरचना, कैरेक्टर सीमाएँ और समीक्षा प्रक्रिया की पूरी जानकारी के लिए टेम्प्लेट दिशानिर्देश देखें।
लागत
कैटेगरी और गंतव्य कीमत तय करते हैं। अपनी प्राथमिक लोकेशन से अलग किसी देश में भेजने पर कीमत कैसे बदल सकती है, यह जानने के लिए WhatsApp authentication-international rates देखें, और भेजने पर शुल्क कब लगता है इसके लिए लागत और बिलिंग देखें। दरों के आँकड़े WhatsApp pricing पर हैं।
ध्यान देने योग्य बातें
- Bird के स्टॉक्ड टेम्प्लेट नौ देशों में डिलीवर नहीं होते।
bird_otpऔरbird_otp_authiflyBird के अपने WhatsApp Business Accounts से भेजते हैं, और वे अकाउंट मिस्र, भारत, इंडोनेशिया, मलेशिया, नाइजीरिया, पाकिस्तान, सऊदी अरब, दक्षिण अफ़्रीका या संयुक्त अरब अमीरात में authentication मैसेज नहीं भेजते। ऐसा सेंड कुछ भी चार्ज होने से पहले422E15063WhatsAppDestinationRestrictedके साथ अस्वीकार कर दिया जाता है। आपने अपने अकाउंट पर जो टेम्प्लेट ऑथर किया है, अपने नंबर से भेजा गया, इन देशों में सामान्य रूप से पहुँचता है। Verify भी इन देशों तक पहुँचता है, सत्यापन कोड को अपने आप दूसरे चैनल पर भेजकर। - ऑथर किए गए सेंड के लिए
fromज़रूरी है, और यह टेम्प्लेट वाले WhatsApp Business Account पर ही होना चाहिए। किसी अलग अकाउंट पर sender होने पर कुछ भी चार्ज होने से पहले422E15023WhatsAppSenderWABAMismatchके साथ अस्वीकार कर दिया जाता है। - केवल वही भाषा भेजी जा सकती है जिसका वर्शन approved और live है। Draft, pending, rejected या paused भाषा भेजी नहीं जा सकती।
- Meta अपनी पहल पर टेम्प्लेट को दोबारा कैटेगराइज़ कर सकता है। इससे ऑप्ट-आउट नहीं किया जा सकता, और यह कैटेगरी से जुड़े pricing और delivery नियमों को भी बदल देता है।
- टेम्प्लेट की कैटेगरी और उसकी भाषा की कैटेगरी अलग-अलग हो सकती हैं। send पाथ इसे कैसे हल करता है, इसके लिए WhatsApp टेम्प्लेट देखें।
- इंजेस्ट किए गए authentication टेम्प्लेट को डुप्लिकेट नहीं किया जा सकता। Bird WhatsApp की जनरेट की गई कॉपी को वापस उन सेटिंग्स में नहीं पढ़ सकता जिनसे नया टेम्प्लेट बनाया जाता है; वह
422E15024WhatsAppTemplateContentNotDuplicableहै। इसके बजाय अपनी खुद की security recommendation और code expiration के साथ नया बनाएँ।
अगले कदम
- WhatsApp टेम्प्लेट: कैटलॉग ब्राउज़ करना और साझा send-by-template कॉन्ट्रैक्ट
- Utility टेम्प्लेट: ऑर्डर अपडेट, अपॉइंटमेंट रिमाइंडर और अकाउंट नोटिस
- WhatsApp business verification: verification कैसे काम करता है और यह और क्या अनलॉक करता है
संबंधित संसाधन
इस विषय के लिए दस्तावेज़, गाइड और उदाहरणों के साथ आगे बढ़ें।