अपना पहला WhatsApp संदेश भेजें
Bird WhatsApp से अपने फ़ोन पर WhatsApp संदेश भेजें, फिर डिलीवरी की पुष्टि के लिए संदेश को वापस पढ़ें। व्यवसाय की ओर से शुरू किए गए संदेशों के लिए पहले से स्वीकृत टेम्पलेट ज़रूरी है। यह क्विकस्टार्ट Bird के प्रबंधित टेम्पलेट कैटलॉग (जैसे bird_delivery_update या bird_otp) से भेजता है, जो Bird द्वारा प्रबंधित साझा WhatsApp प्रेषक का उपयोग करता है। आपको पहले WhatsApp Business Account कनेक्ट करने या नंबर पंजीकृत करने की ज़रूरत नहीं है।
शुरू करने से पहले सुनिश्चित करें कि आपके संगठन के वॉलेट में राशि है। WhatsApp टेम्पलेट संदेश भेजने का शुल्क वॉलेट से कटता है, और जिस संदेश का खर्च शेष राशि से पूरा नहीं होता, उसे Bird 402 WalletInsufficientBalance के साथ अस्वीकार कर देता है। वॉलेट में राशि जोड़ने का तरीका भुगतान के तरीके और वॉलेट में बताया गया है।
1. API कुंजी बनाएँ
डैशबोर्ड में Platform tools > API keys पर जाएँ और whatsapp:write स्कोप वाली कुंजी बनाएँ, जिससे संदेश भेजे और पढ़े जा सकते हैं। कुंजियाँ किसी एक क्षेत्र तक सीमित होती हैं और bk_us1_... या bk_eu1_... जैसी दिखती हैं। प्रीफ़िक्स में दिया क्षेत्र बताता है कि किस API होस्ट को कॉल करना है: https://us1.platform.bird.com या https://eu1.platform.bird.com।

पूरी कुंजी केवल एक बार, बनाते समय दिखाई जाती है। इसे किसी सुरक्षित जगह कॉपी करें, फिर cURL उदाहरणों के लिए इसे एक्सपोर्ट करें:
export BIRD_API_KEY="bk_us1_..."2. टेम्पलेट संदेश भेजें
Bird के प्रबंधित कैटलॉग से पहले से स्वीकृत bird_delivery_update टेम्पलेट अपने फ़ोन पर भेजें, या एक बार उपयोग होने वाला सत्यापन कोड भेजने के लिए bird_otp का उपयोग करें। प्रबंधित टेम्पलेट bird_ से शुरू होते हैं और साझा Bird नंबर से भेजे जाते हैं, इसलिए आप from नहीं देते। अपनी भाषा के लिए Bird SDK उसके SDK क्विकस्टार्ट के अनुसार इंस्टॉल करें। अगर आप Bird CLI टैब का उपयोग करते हैं, तो पहले उसे इंस्टॉल करें (curl -fsSL https://cli.bird.com/install.sh | sh) और लिखने की अनुमति के साथ प्रमाणित करें (bird auth login --scope whatsapp:write)।
SDK टैब में उदाहरण वाली API कुंजी बदलें, और +15551234567 की जगह E.164 फ़ॉर्मैट में अपना मोबाइल नंबर डालें। CLI आपके लॉगिन का उपयोग करता है, और cURL टैब BIRD_API_KEY का उपयोग करता है।
import { BirdClient } from "@messagebird/sdk";
const bird = new BirdClient({ apiKey: "bk_XXXXXXXXXXXXXXXXXXXXXXXX" });
const msg = await bird.whatsapp.send({
to: "+15551234567",
template: {
slug: "bird_delivery_update",
components: [
{
type: "body",
parameters: [
{ type: "text", name: "ref", text: "A1B2C3D4" },
{ type: "text", name: "date", text: "10 Jul 2026" },
],
},
],
},
});
console.log(msg.id, msg.status);from bird import APIError, Bird
with Bird(api_key="bk_XXXXXXXXXXXXXXXXXXXXXXXX") as client:
try:
message = client.whatsapp.send(
to="+15551234567",
template="bird_delivery_update",
components=[
{
"type": "body",
"parameters": [
{"type": "text", "name": "ref", "text": "A1B2C3D4"},
{"type": "text", "name": "date", "text": "10 Jul 2026"},
],
}
],
)
print(message.id, message.status)
except APIError as err:
print("send failed:", err)package main
import (
"context"
"fmt"
"log"
bird "github.com/messagebird/bird-sdk-go"
"github.com/messagebird/bird-sdk-go/option"
)
func main() {
client, err := bird.NewClient(option.WithAPIKey("bk_XXXXXXXXXXXXXXXXXXXXXXXX"))
if err != nil {
log.Fatal(err)
}
msg, err := client.Whatsapp.Send(context.Background(), bird.WhatsappSendParams{
To: "+15551234567",
Template: "bird_delivery_update",
Components: []bird.WhatsAppMessageTemplateComponent{{
Type: "body",
Parameters: &[]bird.WhatsAppMessageTemplateComponentParameter{
{Type: "text", Name: bird.String("ref"), Text: bird.String("A1B2C3D4")},
{Type: "text", Name: bird.String("date"), Text: bird.String("10 Jul 2026")},
},
}},
})
if err != nil {
log.Fatal(err)
}
fmt.Println(msg.Id, *msg.Status)
}<?php
declare(strict_types=1);
require __DIR__ . '/../vendor/autoload.php';
use MessageBird\Bird;
use MessageBird\Wire\Model\WhatsAppMessageTemplateComponent;
use MessageBird\Wire\Model\WhatsAppMessageTemplateComponentParameter;
$bird = new Bird('bk_XXXXXXXXXXXXXXXXXXXXXXXX');
$message = $bird->whatsapp->send(
to: '+15551234567',
template: 'bird_delivery_update',
components: [
(new WhatsAppMessageTemplateComponent())
->setType('body')
->setParameters([
(new WhatsAppMessageTemplateComponentParameter())->setType('text')->setName('ref')->setText('A1B2C3D4'),
(new WhatsAppMessageTemplateComponentParameter())->setType('text')->setName('date')->setText('10 Jul 2026'),
]),
],
);
echo $message->getId(), ' ', $message->getStatus(), "\n";bird whatsapp send \
--components '[{"parameters":[{"name":"ref","text":"A1B2C3D4","type":"text"},{"name":"date","text":"10 Jul 2026","type":"text"}],"type":"body"}]' \
--template bird_delivery_update \
--to +15551234567curl -X POST https://us1.platform.bird.com/v1/whatsapp/messages \
-H "Authorization: Bearer $BIRD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "+15551234567",
"template": {
"slug": "bird_delivery_update",
"components": [
{
"type": "body",
"parameters": [
{ "type": "text", "name": "ref", "text": "A1B2C3D4" },
{ "type": "text", "name": "date", "text": "10 Jul 2026" }
]
}
]
}
}'यदि आपकी कुंजी bk_eu1_ से शुरू होती है, तो इसके बजाय https://eu1.platform.bird.com को कॉल करें।
API 202 Accepted और बनाए गए संदेश के साथ प्रतिक्रिया देता है। इसका id wam_ से शुरू होता है, और इसका status accepted होता है: Bird ने संदेश स्वीकार कर लिया है और उसे एसिंक्रोनस रूप से डिलीवर करता है। अगले चरण के लिए id संभालकर रखें।
3. डिलीवरी की स्थिति जाँचें
संदेश को उसकी wam_ ID से प्राप्त करें। WHATSAPP_MESSAGE_ID को चरण 2 के id से बदलें, और SDK टैब में उदाहरण वाली API कुंजी को अपनी कुंजी से बदलें:
import { BirdClient } from "@messagebird/sdk";
const bird = new BirdClient({ apiKey: "bk_XXXXXXXXXXXXXXXXXXXXXXXX" });
const msg = await bird.whatsapp.get("WHATSAPP_MESSAGE_ID");
console.log(msg.id, msg.status);from bird import APIError, Bird
with Bird(api_key="bk_XXXXXXXXXXXXXXXXXXXXXXXX") as client:
try:
message = client.whatsapp.get("WHATSAPP_MESSAGE_ID")
print(message.id, message.status)
except APIError as err:
print("read failed:", err)package main
import (
"context"
"fmt"
"log"
bird "github.com/messagebird/bird-sdk-go"
"github.com/messagebird/bird-sdk-go/option"
)
func main() {
client, err := bird.NewClient(option.WithAPIKey("bk_XXXXXXXXXXXXXXXXXXXXXXXX"))
if err != nil {
log.Fatal(err)
}
msg, err := client.Whatsapp.Get(context.Background(), "WHATSAPP_MESSAGE_ID")
if err != nil {
log.Fatal(err)
}
fmt.Println(msg.Id, *msg.Status)
}<?php
declare(strict_types=1);
require __DIR__ . '/../vendor/autoload.php';
use MessageBird\Bird;
$bird = new Bird('bk_XXXXXXXXXXXXXXXXXXXXXXXX');
$message = $bird->whatsapp->get('WHATSAPP_MESSAGE_ID');
echo $message->getId(), ' ', $message->getStatus(), "\n";bird whatsapp get WHATSAPP_MESSAGE_IDcurl https://us1.platform.bird.com/v1/whatsapp/messages/WHATSAPP_MESSAGE_ID \
-H "Authorization: Bearer $BIRD_API_KEY"status फ़ील्ड बताता है कि संदेश किस स्थिति में है:
accepted: Bird ने संदेश स्वीकार कर लिया है और उसे WhatsApp को सौंपने की तैयारी कर रहा है।sent: WhatsApp ने संदेश स्वीकार कर लिया, औरsent_atमें इसका समय दर्ज होता है।delivered: WhatsApp ने प्राप्तकर्ता के डिवाइस पर डिलीवरी की पुष्टि की, औरdelivered_atमें इसका समय दर्ज होता है। जब प्राप्तकर्ता संदेश पढ़ लेता है, तोread_atसेट हो जाता है, जबकिstatusdeliveredही रहता है।failedयाrejected: संदेश फ़ोन तक नहीं पहुँचा।last_errorइसका कारण बताता है, और संदेश स्थिति इवेंट में त्रुटि कोड की सूची है।
तब तक पोल करते रहें जब तक स्थिति accepted और sent से आगे न बढ़ जाए, या डिलीवरी और पढ़े जाने की हर स्थिति बदलने की सूचना (whatsapp.sent, whatsapp.delivered, whatsapp.read, whatsapp.failed) पाने के लिए WhatsApp वेबहुक की सदस्यता लें। साझा Bird-प्रबंधित नंबर केवल संदेश भेजते हैं और आने वाले जवाब आपके वर्कस्पेस तक नहीं पहुँचाते; जवाब पाने के लिए अपना नंबर कनेक्ट करें। हर संदेश अपनी इवेंट टाइमलाइन के साथ Messages पेज पर भी दिखता है।
विफल संदेश को ठीक करें
402WalletInsufficientBalance: वॉलेट में संदेश का खर्च उठाने लायक बैलेंस नहीं है। वॉलेट में पैसे जोड़ें, फिर दोबारा भेजें।403InsufficientScope: API कुंजी मेंwhatsappस्कोप नहीं है। कुंजी के स्कोप संपादित करें याwhatsapp:writeवाली नई कुंजी बनाएँ।422WhatsAppInvalidRecipient:toनंबर मान्य E.164 फ़ोन नंबर नहीं है। शुरुआती+, देश कोड और सब्सक्राइबर अंक जाँचें।
आगे के चरण
- WhatsApp संदेश भेजना: 24 घंटे की ग्राहक सेवा विंडो के भीतर टेम्पलेट और मुक्त-रूप सेवा संदेश भेजें।
- WhatsApp टेम्पलेट: प्रबंधित कैटलॉग (
bird_otp,bird_delivery_updateऔर अन्य) देखें या अपने स्वयं के टेम्पलेट बनाएँ। - फ़ोन नंबर कनेक्ट करें: अपना स्वयं का WhatsApp Business Account और प्रेषक नंबर जोड़ें, ताकि आपका वर्कस्पेस आने वाले जवाब भी प्राप्त कर सके।
- WhatsApp वेबहुक: डिलीवरी रसीदें और पढ़ने की रसीदें प्राप्त करें (और अपना स्वयं का कनेक्ट किया गया नंबर इस्तेमाल करने पर आने वाले संदेश भी)।
- WhatsApp API संदर्भ: पूरा अनुरोध और प्रतिक्रिया स्कीमा।
संबंधित संसाधन
इस विषय के लिए दस्तावेज़, गाइड और उदाहरणों के साथ आगे बढ़ें।