WhatsApp डॉक्यूमेंट मैसेज
डॉक्यूमेंट मैसेज एक पब्लिक URL ले जाता है जिसे WhatsApp भेजते समय फ़ेच करता है, साथ में एक वैकल्पिक कैप्शन और एक वैकल्पिक फ़ाइलनाम होता है। यह सबसे बड़ा मीडिया प्रकार है, और एकमात्र जो कैप्शन और फ़ाइलनाम दोनों ले जाता है।
डॉक्यूमेंट भेजें
document.url सेट करें:
const msg = await bird.whatsapp.send({
to: "+16505551234",
from: "+13124495648",
document: { url: "https://cdn.example.com/invoices/a1b2c3.pdf" },
});
console.log(msg.id, msg.status);msg = client.whatsapp.send(
to="+16505551234",
from_="+13124495648",
document={"url": "https://cdn.example.com/invoices/a1b2c3.pdf"},
)
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)
}
msg, err := client.Whatsapp.Send(context.Background(), bird.WhatsappSendParams{
To: "+16505551234",
From: "+13124495648",
Document: &bird.WhatsAppDocumentSend{Url: "https://cdn.example.com/invoices/a1b2c3.pdf"},
})
if err != nil {
log.Fatal(err)
}
fmt.Println(msg.Id, *msg.Status)
}$document = (new WhatsAppMessageSendRequestDocument())
->setUrl('https://cdn.example.com/invoices/a1b2c3.pdf');
$message = $bird->whatsapp->send(
to: '+16505551234',
from: '+13124495648',
document: $document,
);
echo $message->getId(), ' ', $message->getStatus();bird whatsapp send \
--document https://cdn.example.com/invoices/a1b2c3.pdf \
--from +13124495648 \
--to +16505551234{
"name": "whatsapp_send",
"arguments": {
"document": {
"url": "https://cdn.example.com/invoices/a1b2c3.pdf"
},
"from": "+13124495648",
"to": "+16505551234"
}
}curl -X POST "https://us1.platform.bird.com/v1/whatsapp/messages" \
-H "Authorization: Bearer $BIRD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "+16505551234",
"from": "+13124495648",
"document": {
"url": "https://cdn.example.com/invoices/a1b2c3.pdf"
}
}'पूरा स्ट्रक्चर caption और filename जोड़ता है:
कोड उदाहरण
{
"to": "+16505551234",
"from": "+13124495648",
"document": {
"url": "https://cdn.example.com/invoices/a1b2c3.pdf",
"caption": "Your invoice for order A1B2C3",
"filename": "invoice-a1b2c3.pdf"
}
}from हर सर्विस मैसेज पर ज़रूरी है: आपके वर्कस्पेस का अपना नंबर, Bird-प्रबंधित नहीं।
सीमाएँ
| फ़ील्ड | सीमा | लागू करने वाला |
|---|---|---|
| फ़ाइल साइज़ | 100 MB | केवल WhatsApp, फ़ेच पर (async) |
| फ़ाइल टाइप | PDF, Word, Excel, PowerPoint, या प्लेन टेक्स्ट WhatsApp क्लाइंट में विश्वसनीय रूप से रेंडर होते हैं; अन्य टाइप ट्रांसमिट होते हैं लेकिन समर्थित नहीं हैं | केवल WhatsApp, फ़ेच पर (async) |
| caption | अधिकतम 1,024 कैरेक्टर | Bird, accept पर (422) |
| filename | 1 से 100 कैरेक्टर | Bird, accept पर (422); यह सीमा Bird की अपनी है, क्योंकि WhatsApp कोई फ़ाइलनाम सीमा दस्तावेज़ित नहीं करता |
| url | absolute, https, होस्ट हो, कोई रॉ स्पेस नहीं | Bird, accept पर (422) |
Bird कुछ भी क्यू करने से पहले URL का स्ट्रक्चर और कैप्शन तथा फ़ाइलनाम की लंबाई जाँचता है। यह फ़ाइल की वास्तविक साइज़ या टाइप की जाँच नहीं करता; केवल भेजते समय WhatsApp का अपना फ़ेच ऐसा कर सकता है। हब का URL द्वारा मीडिया भेजना और मीडिया फ़ेल होने पर देखें।
इनबाउंड डॉक्यूमेंट पढ़ना
इनबाउंड डॉक्यूमेंट वही document ऑब्जेक्ट ले जाता है, साथ में एक id और mime_type जो Bird ने फ़ाइल फ़ेच करके सीखा। आउटबाउंड रीड-बैक पर दोनों अनुपस्थित होते हैं, क्योंकि Bird ने भेजी गई फ़ाइल कभी फ़ेच नहीं की, और इनबाउंड पर filename वही होता है जो संपर्क के डिवाइस ने दिया। पूरा इनबाउंड रीड, whatsapp.received पेलोड, और ध्यान देने योग्य बातों के लिए WhatsApp डॉक्यूमेंट प्राप्त करना देखें।
सीमाएँ और विफलता मोड
- कस्टमर सर्विस विंडो खुली होनी चाहिए। डॉक्यूमेंट सर्विस मैसेज हैं, केवल खुली विंडो के अंदर डिलीवर किए जा सकते हैं; हब की कस्टमर सर्विस विंडो देखें।
- Bird http को रिजेक्ट करता है; WhatsApp स्वयं इसे फ़ेच करता। पूरी स्ट्रक्चर जाँच के लिए हब का URL द्वारा मीडिया भेजना देखें।
- रिजेक्ट हुए फ़ेच पर भी चार्ज लगता है, और इस प्रकार में यह सबसे अधिक होने की संभावना है। 100 MB पर, डॉक्यूमेंट आपकी भेजी जा सकने वाली सबसे बड़ी चीज़ है, और Bird accept पर वास्तविक बाइट्स के बारे में कुछ भी जाँच नहीं करता। media_rejected और चार्ज-ऑन-फ़ेलियर तथ्य के लिए हब का मीडिया फ़ेल होने पर देखें। WhatsApp से डॉक्यूमेंट का अपना रिजेक्शन टेक्स्ट स्वतंत्र रूप से उस तरह मापा नहीं गया है जैसे इमेज का, इसलिए इस मैपिंग को प्रति कारण पुष्ट न मानकर सममिति से अनुमानित मानें।
- filename छोड़ने का मतलब यह नहीं कि प्राप्तकर्ता को कोई नाम नहीं दिखता। WhatsApp URL के पाथ से एक नाम बना लेता है, जो पढ़ने योग्य कुछ होने के बजाय एक अपारदर्शी हैश या स्लग हो सकता है। वास्तव में क्या दिखे इसे नियंत्रित करने के लिए filename स्पष्ट रूप से सेट करें।
- 100-कैरेक्टर filename सीमा Bird की अपनी पसंद है, WhatsApp की सीमा नहीं। WhatsApp कोई भी फ़ाइलनाम लंबाई सीमा दस्तावेज़ित नहीं करता।
- WhatsApp फ़ेच किए गए URL को लगभग 10 मिनट के लिए कैश करता है। उस विंडो के अंदर वही URL दोबारा भेजने पर पहला फ़ेच ही दिया जाता है; नया फ़ेच ज़बरदस्ती करने के लिए URL बदलें।
अगले कदम
- WhatsApp सर्विस मैसेज: कस्टमर सर्विस विंडो और वह मॉडल जो हर सर्विस मैसेज में समान होता है
- Images: फ़ाइल के बजाय फ़ोटो या ग्राफ़िक के लिए
- Templates: विंडो बंद होने के बाद भेजे जा सकने वाले मैसेज के लिए
- WhatsApp मैसेज भेजना: रिक्वेस्ट एनवेलप, 202 मॉडल, और सुरक्षित फिर से प्रयास
संबंधित संसाधन
इस विषय के लिए डॉक्यूमेंटेशन, गाइड और उदाहरणों के साथ आगे बढ़ें। संसाधन अंग्रेज़ी में हैं।
गाइड देखेंConnecting WhatsApp to Bird: from buying a number to a live channelकॉन्सेप्ट समझेंWhat is the 24-hour customer service window on WhatsApp?टूल का उपयोग करेंWhatsApp message builderक्षमता जानेंWhatsApp
अभ्यास करें और इम्प्लीमेंटेशन ब्रीफ़ पाएँ