हर एक के लिए एक API टेक्स्ट जो आप भेजते हैं।
Bird के ज़रिए ट्रांज़ैक्शनल संदेश और सूचनाएँ भेजें। अपना टेक्स्ट और सेंडर दें, या टेम्पलेट का उपयोग करें; प्रतिक्रिया में एन्कोडिंग और सेगमेंट काउंट देखें। सुरक्षित फिर से प्रयास करने के लिए आइडेम्पोटेंसी कुंजी जोड़ें और साइन किए गए वेबहुक से डिलीवरी ट्रैक करें।
एक संदेश। एक दिखने वाला परिणाम।
भेजने का उदाहरण
स्वीकृति और बाद में कैरियर रसीद को देखें। यह उदाहरण कोई टेक्स्ट नहीं भेजता; डिलीवरी यह साबित नहीं करती कि किसी ने इसे पढ़ा।
अपना पहला SMS इंटीग्रेशन टेस्ट करें।
जो भाषा आप पहले से इस्तेमाल करते हैं, उसी से।
सेंडिंग Bird SMS API का मूल है। नीचे दिया गया उदाहरण अनुरोध का स्वरूप दिखाता है। नियंत्रित परीक्षण के लिए, प्राप्तकर्ता को दस्तावेज़ में दिए गए सैंडबॉक्स नंबर +15005550006 से बदलें। पहले एक उपयुक्त US सेंडर सेट करें और गंतव्य सक्षम करें, फिर ग्राहकों को भेजने से पहले स्वीकृति और डिलीवरी इवेंट सत्यापित करें।
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 का उपयोग करें।
एक स्पष्ट सेंडिंग अनुबंध पर निर्माण करें।
अनुरोध तैयार करें और परिणाम ट्रैक करें।
- 01
भेजने से पहले सेगमेंट गिनती।
Bird अपनी प्रतिक्रिया में गणना की गई एन्कोडिंग और सेगमेंट काउंट देता है। सबमिट करने से पहले ड्राफ़्ट जाँचने के लिए सेगमेंट कैलकुलेटर का उपयोग करें।
- 02
GSM-7 और Unicode, आपके लिए तय।
कैरेक्टर एन्कोडिंग तय करते हैं। GSM-7 एक सिंगल सेगमेंट में 160 यूनिट समा लेता है; Unicode में 70। मल्टीपार्ट संदेश रीअसेंबली के लिए जगह आरक्षित करते हैं, और इमोजी एक से अधिक यूनिट ले सकते हैं।
- 03
एक ही कॉल में बैच भेजें।
एक बैच में 100 तक स्वतंत्र संदेश सबमिट करें। एनक्यूइंग से पहले वैलिडेशन होता है; हर स्वीकृत संदेश का अपना परिणाम होता है।
- 04
आइडेम्पोटेंसी कुंजी के साथ फिर से प्रयास करें।
हर लॉजिकल अनुरोध के लिए एक आइडेम्पोटेंसी कुंजी का उपयोग करें और समान पुनः प्रयास के लिए उसे दोबारा इस्तेमाल करें। संग्रहीत API प्रतिक्रिया रीप्ले की जा सकती है; यह कैरियर द्वारा exactly-once डिलीवरी की गारंटी नहीं देता।
- 05
आपके एप्लिकेशन के लिए डिलीवरी इवेंट।
accepted, sent और टर्मिनल आउटकम इवेंट सब्सक्राइब करें। सिग्नेचर सत्यापित करें, वेबहुक पुनः प्रयासों को डीडुप्लिकेट करें और छूटे या विलंबित अवलोकनों की जाँच के लिए मैसेज रीड्स का उपयोग करें।
नियंत्रित परीक्षण के साथ इंटीग्रेशन आगे बढ़ाएँ।
अपने मौजूदा अनुरोध फ़ील्ड, सेंडर रजिस्ट्रेशन और इवेंट हैंडलिंग को Bird से मैप करें। ट्रैफ़िक माइग्रेट करने से पहले ऑप्ट-आउट का मिलान करें, फिर प्रोडक्शन रूटिंग बदलने से पहले नियंत्रित परीक्षण की तुलना करें।
import twilio from "twilio";
const client = twilio(accountSid, authToken);
await client.messages.create({
from: "+14155550172",
to: "+15005550006",
body: "Your code is 123456.",
});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 स्वीकृति पर एन्कोडिंग और सेगमेंट लौटाता है; लागू दर और कैरियर शुल्क अलग से प्राइस किए जाते हैं।
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 की प्रोसेसिंग और डिलीवरी अलग-अलग सफल या विफल हो सकती है। दस्तावेज़ में दिए गए रिटेंशन विंडो के भीतर पुनः प्रयास करते समय उसी अनुरोध और आइडेम्पोटेंसी कुंजी का उपयोग करें।
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 लौटाता है। चार्जिंग और कैरियर सबमिशन बाद में होते हैं और अभी भी विफल हो सकते हैं। परिणाम की जाँच करते समय साइन किए गए डिलीवरी इवेंट कंज़्यूम करें और मैसेज रिकॉर्ड निरीक्षण करें।
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 प्रयास के लिए टर्मिनल विफलता। रिपोर्ट की गई त्रुटि और मैसेज टाइमलाइन का निरीक्षण करें।
डॉक्स में और गहराई से जानें।
वेबहुक सेट करें, आइडेम्पोटेंसी कुंजियों से हर भेजने को फिर से प्रयास के लिए सुरक्षित बनाएँ, और त्रुटि संदर्भ पढ़ें ताकि आप हर विफलता को सही तरीके से संभालें।
बनाने से पहले के सवाल
क्या सेंडर मैं चुनता/चुनती हूँ?
फिर से प्रयास करने पर डुप्लिकेट टेक्स्ट से कैसे बचा जाता है?
क्या स्वीकृत का मतलब डिलीवर हुआ है?
क्या बैच और ब्रॉडकास्ट एक ही चीज़ है?
बाकी SMS प्लेटफ़ॉर्म
एक API, कुंजियों का एक सेट। अन्य क्षमताएँ देखें।
बिना नियंत्रण खोए
स्केल करें।
टीमों को वर्कस्पेस में व्यवस्थित करें, API एक्सेस नियंत्रित करें, और ऑडिट लॉग से बदलावों को ट्रेस करें।
ऑडिट लॉग
प्रोडक्शन- वर्कस्पेस
- प्रोडक्शन
- संसाधन
- संदेश वितरण एजेंट
- पढ़ने की अनुमतिपढ़ने और लिखने की अनुमति