हर एक के लिए एक API टेक्स्ट जो आप भेजते हैं।

Bird के ज़रिए ट्रांज़ैक्शनल संदेश और सूचनाएँ भेजें। अपना टेक्स्ट और सेंडर दें, या टेम्पलेट का उपयोग करें; प्रतिक्रिया में एन्कोडिंग और सेगमेंट काउंट देखें। सुरक्षित फिर से प्रयास करने के लिए आइडेम्पोटेंसी कुंजी जोड़ें और साइन किए गए वेबहुक से डिलीवरी ट्रैक करें।

एक संदेश। एक दिखने वाला परिणाम।

भेजने का उदाहरण

Fफ़ील्डनोट्स
आपका ऑर्डर #4821 लेने के लिए तैयार है।
स्थिति202 Accepted
एन्कोडिंगGSM-7
सेगमेंट1

स्वीकृति और बाद में कैरियर रसीद को देखें। यह उदाहरण कोई टेक्स्ट नहीं भेजता; डिलीवरी यह साबित नहीं करती कि किसी ने इसे पढ़ा।

अपना पहला SMS इंटीग्रेशन टेस्ट करें।

जो भाषा आप पहले से इस्तेमाल करते हैं, उसी से।

सेंडिंग Bird SMS API का मूल है। नीचे दिया गया उदाहरण अनुरोध का स्वरूप दिखाता है। नियंत्रित परीक्षण के लिए, प्राप्तकर्ता को दस्तावेज़ में दिए गए सैंडबॉक्स नंबर +15005550006 से बदलें। पहले एक उपयुक्त US सेंडर सेट करें और गंतव्य सक्षम करें, फिर ग्राहकों को भेजने से पहले स्वीकृति और डिलीवरी इवेंट सत्यापित करें।

1
2
3
4
5
6
7
const msg = await bird.sms.send({
  from: "+15557654321",
  to: "+14155550100",
  text: "Your verification code is 123456.",
  category: "authentication",
});
console.log(msg.id, msg.status);

SMS सेंड आपका दिया गया टेक्स्ट डिलीवर करता है। लॉगिन और अकाउंट सत्यापन के लिए, सत्यापन फ़्लो में कोड जेनरेट, एक्सपायर और जाँचने हेतु Bird Verify का उपयोग करें।

एक स्पष्ट सेंडिंग अनुबंध पर निर्माण करें।

अनुरोध तैयार करें और परिणाम ट्रैक करें।

  1. 01

    भेजने से पहले सेगमेंट गिनती।

    Bird अपनी प्रतिक्रिया में गणना की गई एन्कोडिंग और सेगमेंट काउंट देता है। सबमिट करने से पहले ड्राफ़्ट जाँचने के लिए सेगमेंट कैलकुलेटर का उपयोग करें।

  2. 02

    GSM-7 और Unicode, आपके लिए तय।

    कैरेक्टर एन्कोडिंग तय करते हैं। GSM-7 एक सिंगल सेगमेंट में 160 यूनिट समा लेता है; Unicode में 70। मल्टीपार्ट संदेश रीअसेंबली के लिए जगह आरक्षित करते हैं, और इमोजी एक से अधिक यूनिट ले सकते हैं।

  3. 03

    एक ही कॉल में बैच भेजें।

    एक बैच में 100 तक स्वतंत्र संदेश सबमिट करें। एनक्यूइंग से पहले वैलिडेशन होता है; हर स्वीकृत संदेश का अपना परिणाम होता है।

  4. 04

    आइडेम्पोटेंसी कुंजी के साथ फिर से प्रयास करें।

    हर लॉजिकल अनुरोध के लिए एक आइडेम्पोटेंसी कुंजी का उपयोग करें और समान पुनः प्रयास के लिए उसे दोबारा इस्तेमाल करें। संग्रहीत API प्रतिक्रिया रीप्ले की जा सकती है; यह कैरियर द्वारा exactly-once डिलीवरी की गारंटी नहीं देता।

  5. 05

    आपके एप्लिकेशन के लिए डिलीवरी इवेंट।

    accepted, sent और टर्मिनल आउटकम इवेंट सब्सक्राइब करें। सिग्नेचर सत्यापित करें, वेबहुक पुनः प्रयासों को डीडुप्लिकेट करें और छूटे या विलंबित अवलोकनों की जाँच के लिए मैसेज रीड्स का उपयोग करें।

नियंत्रित परीक्षण के साथ इंटीग्रेशन आगे बढ़ाएँ।

अपने मौजूदा अनुरोध फ़ील्ड, सेंडर रजिस्ट्रेशन और इवेंट हैंडलिंग को Bird से मैप करें। ट्रैफ़िक माइग्रेट करने से पहले ऑप्ट-आउट का मिलान करें, फिर प्रोडक्शन रूटिंग बदलने से पहले नियंत्रित परीक्षण की तुलना करें।

twilio.ts
Twilio
import twilio from "twilio";

const client = twilio(accountSid, authToken);

await client.messages.create({
  from: "+14155550172",
  to:   "+15005550006",
  body: "Your code is 123456.",
});
bird.ts
Bird
import { BirdClient } from "@messagebird/sdk";

const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });

await bird.sms.send({
  from:     "+14155550172",
  to:       "+15005550006",
  text:     "Your code is 123456.",
  category: "authentication",
});

सबमिशन से पहले सेगमेंट काउंट जानें।

GSM-7 एक सिंगल सेगमेंट में 160 सेप्टेट समा लेता है; UCS-2 में 70 कोड यूनिट आते हैं। मल्टीपार्ट क्षमता क्रमशः 153 या 67 है। विस्तारित GSM-7 कैरेक्टर दो सेप्टेट लेते हैं और इमोजी दो कोड यूनिट ले सकते हैं। Bird स्वीकृति पर एन्कोडिंग और सेगमेंट लौटाता है; लागू दर और कैरियर शुल्क अलग से प्राइस किए जाते हैं।

segments.ts
202 · 1 segment
const { data, error } = await bird.sms.send({
  from:     "Bird",
  to:       "+31612345678",
  text:     "Your code is 123456.",
  category: "authentication",
}).safe();
if (error) throw error;

console.log(data.segments);
// → { characters: 20, count: 1, encoding: "GSM_7BIT" }

एक मैसेज हो या सौ, एक ही कॉल।

100 तक स्वतंत्र संदेशों को बैच करें, प्रत्येक का अपना प्राप्तकर्ता और टेक्स्ट। अमान्य इनपुट एनक्यूइंग से पहले अनुरोध अस्वीकार कर देता है। सफल 202 प्रतिक्रिया के बाद, हर SMS की प्रोसेसिंग और डिलीवरी अलग-अलग सफल या विफल हो सकती है। दस्तावेज़ में दिए गए रिटेंशन विंडो के भीतर पुनः प्रयास करते समय उसी अनुरोध और आइडेम्पोटेंसी कुंजी का उपयोग करें।

reminders.ts
202 · batch
const { data: batch, error } = await bird.sms
  .sendBatch(
    users.map((u) => ({
      from: "Bird",
      to:   u.phone,
      text: `Hi ${u.name}, your appointment is tomorrow at ${u.time}.`,
    })),
  )
  .safe();

if (error) throw error;
console.log(`queued ${batch.data.length} messages`);

स्वीकृति से रिपोर्ट किए गए परिणाम तक ट्रैक करें।

सफल अनुरोध 202 Accepted लौटाता है। चार्जिंग और कैरियर सबमिशन बाद में होते हैं और अभी भी विफल हो सकते हैं। परिणाम की जाँच करते समय साइन किए गए डिलीवरी इवेंट कंज़्यूम करें और मैसेज रिकॉर्ड निरीक्षण करें।

app/api/webhooks/bird/route.ts
signed
import { bird } from "@/lib/bird";

export async function POST(req: Request) {
  const event = bird.webhooks.unwrap(
    await req.text(),
    Object.fromEntries(req.headers),
  );

  switch (event.type) {
    case "sms.delivered":
      await markDelivered(event.data.sms_id);
      break;
    case "sms.failed":
      await flag(event.data.to, event.data.error?.description);
      break;
  }

  return new Response(null, { status: 204 });
}

रिपोर्ट किए गए कारण से विफलताओं का निरीक्षण करें। समर्थित STOP कीवर्ड और कैरियर ऑप्ट-आउट सप्रेशन बनाते हैं; अन्य डिलीवरी विफलताएँ स्वचालित रूप से ऑप्ट-आउट नहीं बनतीं।

  • sms.acceptedAPI द्वारा स्वीकृत और कैरियर हैंड-ऑफ़ के लिए कतार में।
  • sms.sentगंतव्य कैरियर के SMSC को सबमिट किया गया।
  • sms.deliveredकैरियर से डिलीवरी रसीद प्राप्त (DLR)।
  • sms.failedइस SMS प्रयास के लिए टर्मिनल विफलता। रिपोर्ट की गई त्रुटि और मैसेज टाइमलाइन का निरीक्षण करें।

डॉक्स में और गहराई से जानें।

वेबहुक सेट करें, आइडेम्पोटेंसी कुंजियों से हर भेजने को फिर से प्रयास के लिए सुरक्षित बनाएँ, और त्रुटि संदर्भ पढ़ें ताकि आप हर विफलता को सही तरीके से संभालें।

बनाने से पहले के सवाल

क्या सेंडर मैं चुनता/चुनती हूँ?
फ़्री-टेक्स्ट भेजने के लिए, एक ऐसा सेंडर प्रदान करें जिसे आपका वर्कस्पेस उस गंतव्य में और उचित संदेश श्रेणी के साथ उपयोग कर सके। सिस्टम-टेम्पलेट भेजने में श्रेणी और सेंडर टेम्पलेट से निर्धारित होते हैं।
फिर से प्रयास करने पर डुप्लिकेट टेक्स्ट से कैसे बचा जाता है?
एक आइडेम्पोटेंसी की प्रदान करें और उसी अनुरोध को फिर से प्रयास करने के लिए उसे दोबारा उपयोग करें। उस की के बिना भेजे गए संदेश को नए संदेश के रूप में माना जा सकता है।
क्या स्वीकृत का मतलब डिलीवर हुआ है?
नहीं। 202 प्रतिक्रिया का मतलब है कि API ने अनुरोध स्वीकार कर लिया। कैरियर-रिपोर्टेड परिणाम के लिए संदेश रिकॉर्ड और साइन किए गए इवेंट्स को फ़ॉलो करें। डिलीवरी रसीद यह स्थापित नहीं करती कि प्राप्तकर्ता ने टेक्स्ट पढ़ा।
क्या बैच और ब्रॉडकास्ट एक ही चीज़ है?
एक बैच में 100 तक स्वतंत्र संदेश होते हैं, प्रत्येक का अपना प्राप्तकर्ता और बॉडी होती है। ब्रॉडकास्ट एक ऑडियंस कैम्पेन है जिसमें साझा कंटेंट और प्रबंधित भेजने का जीवनचक्र होता है। अपने कार्य से मेल खाने वाला वर्कफ़्लो चुनें।

बिना नियंत्रण खोए
स्केल करें।

टीमों को वर्कस्पेस में व्यवस्थित करें, API एक्सेस नियंत्रित करें, और ऑडिट लॉग से बदलावों को ट्रेस करें।

BirdHarborसंगठन
वर्कस्पेसप्रोडक्शनसैंडबॉक्स

संदेश वितरण एजेंट

API कुंजी · ग्राहक संचालन टीम
सक्रिय
अनुमतियाँपहुँच
Emailपढ़ने और लिखने की अनुमति
SMSपढ़ने और लिखने की अनुमति
ALAlex Lee व्यवस्थापकअनुमतियाँ अपडेट की गईं

ऑडिट लॉग

प्रोडक्शन
वर्कस्पेस
प्रोडक्शन
संसाधन
संदेश वितरण एजेंट
WhatsApp
पढ़ने की अनुमतिपढ़ने और लिखने की अनुमति
सफल

SMS से शुरू करें।
Bird के साथ सभी चैनलों पर बनाएँ।

आपका अगला आइडिया। जुड़ने के लिए तैयार।