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 +16505551234curl -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 | अधिकतम 1024 अक्षर | Bird, स्वीकार करते समय (422) |
filename | 1 से 100 अक्षर | Bird, स्वीकार करते समय (422); यह सीमा Bird की अपनी है, क्योंकि WhatsApp फ़ाइल नाम की कोई सीमा प्रलेखित नहीं करता |
url | पूर्ण (absolute), https, होस्ट सहित, कोई कच्चा स्पेस नहीं | Bird, स्वीकार करते समय (422) |
Bird कुछ भी कतार में डालने से पहले URL की बनावट और कैप्शन व फ़ाइल नाम की लंबाई जाँचता है। यह फ़ाइल का वास्तविक आकार या प्रकार नहीं जाँचता; यह केवल भेजते समय WhatsApp के अपने फ़ेच से ही संभव है। हब के URL से मीडिया भेजना और मीडिया विफल होने पर देखें।
इनबाउंड दस्तावेज़ पढ़ना
इनबाउंड दस्तावेज़ में वही document ऑब्जेक्ट होता है, साथ ही id और mime_type भी, जो Bird ने फ़ाइल फ़ेच करके जाने। आउटबाउंड रीड-बैक में ये दोनों नहीं होते, क्योंकि Bird ने अपनी भेजी फ़ाइल कभी फ़ेच नहीं की। इनबाउंड संदेश में filename वही होता है जो संपर्क के डिवाइस ने दिया। पूरी इनबाउंड पढ़ाई, whatsapp.received पेलोड और ध्यान रखने योग्य बातों के लिए WhatsApp दस्तावेज़ प्राप्त करना देखें।
सीमाएँ और विफलता के कारण
- ग्राहक सेवा विंडो खुली होनी चाहिए। दस्तावेज़ सेवा संदेश हैं, जो केवल खुली विंडो के भीतर डिलीवर हो सकते हैं; हब की ग्राहक सेवा विंडो देखें।
- Bird
httpको अस्वीकार करता है, जबकि WhatsApp खुद उसे फ़ेच कर लेता। पूरी बनावट जाँच के लिए हब का URL से मीडिया भेजना देखें। - अस्वीकृत फ़ेच का भी शुल्क लगता है, और यह स्थिति सबसे अधिक इसी मीडिया प्रकार में आती है। 100 MB तक का दस्तावेज़ सबसे बड़ी चीज़ है जो आप भेज सकते हैं, और स्वीकार करते समय Bird वास्तविक बाइट्स के बारे में कुछ नहीं जाँचता।
media_rejectedऔर विफलता पर शुल्क लगने के तथ्य के लिए हब का मीडिया विफल होने पर देखें। WhatsApp से आने वाले दस्तावेज़ के अस्वीकृति संदेशों को इमेज की तरह स्वतंत्र रूप से मापा नहीं गया है, इसलिए इस मैपिंग को हर कारण के लिए पुष्ट नहीं, बल्कि समानता के आधार पर अनुमानित मानें। filenameछोड़ देने का मतलब यह नहीं कि प्राप्तकर्ता को कोई नाम नहीं दिखेगा। तब WhatsApp URL के पाथ से नाम बनाता है, जो पढ़ने योग्य नाम के बजाय कोई अस्पष्ट हैश या स्लग हो सकता है। जो नाम दिखे उसे नियंत्रित करने के लिएfilenameस्पष्ट रूप से सेट करें।- 100 अक्षरों की
filenameसीमा Bird का अपना निर्णय है, WhatsApp की सीमा नहीं। WhatsApp फ़ाइल नाम की लंबाई पर कोई सीमा प्रलेखित नहीं करता। - WhatsApp फ़ेच किए गए URL को लगभग 10 मिनट तक कैश करता है। उस अवधि के भीतर वही URL दोबारा भेजने पर पहली फ़ेच ही फिर से दी जाती है; नई फ़ेच करवाने के लिए URL बदलें।
अगले चरण
- WhatsApp सर्विस मैसेज: ग्राहक सेवा विंडो और वह मॉडल जो हर सर्विस मैसेज में समान है
- इमेज: फ़ाइल के बजाय फ़ोटो या ग्राफ़िक भेजने के लिए
- टेम्पलेट: उन मैसेज के लिए जिन्हें आप विंडो बंद होने के बाद भेज सकते हैं
- WhatsApp मैसेज भेजना: अनुरोध का ढांचा,
202मॉडल और सुरक्षित तरीके से फिर से प्रयास करना
संबंधित संसाधन
इस विषय के लिए दस्तावेज़, गाइड और उदाहरणों के साथ आगे बढ़ें।