WhatsApp ऑडियो संदेश
ऑडियो संदेश एक सार्वजनिक URL रखता है जिसे WhatsApp भेजते समय फ़ेच करता है। इसमें कोई कैप्शन नहीं होता, और यह वैकल्पिक रूप से वॉइस नोट के रूप में रेंडर हो सकता है।
ऑडियो संदेश भेजें
audio.url सेट करें:
const msg = await bird.whatsapp.send({
to: "+16505551234",
from: "+13124495648",
audio: { url: "https://cdn.example.com/vm/9f2.ogg" },
});
console.log(msg.id, msg.status);msg = client.whatsapp.send(
to="+16505551234",
from_="+13124495648",
audio={"url": "https://cdn.example.com/vm/9f2.ogg"},
)
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",
Audio: &bird.WhatsAppAudioSend{Url: "https://cdn.example.com/vm/9f2.ogg"},
})
if err != nil {
log.Fatal(err)
}
fmt.Println(msg.Id, *msg.Status)
}$audio = (new WhatsAppMessageSendRequestAudio())
->setUrl('https://cdn.example.com/vm/9f2.ogg');
$message = $bird->whatsapp->send(
to: '+16505551234',
from: '+13124495648',
audio: $audio,
);
echo $message->getId(), ' ', $message->getStatus();bird whatsapp send \
--audio https://cdn.example.com/vm/9f2.ogg \
--from +13124495648 \
--to +16505551234{
"name": "whatsapp_send",
"arguments": {
"audio": {
"url": "https://cdn.example.com/vm/9f2.ogg"
},
"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",
"audio": {
"url": "https://cdn.example.com/vm/9f2.ogg"
}
}'पूर्ण संरचना वैकल्पिक voice फ़्लैग जोड़ती है, जो audio का एकमात्र अन्य फ़ील्ड है:
कोड उदाहरण
{
"to": "+16505551234",
"from": "+13124495648",
"audio": { "url": "https://cdn.example.com/voice/9f2e4a.ogg", "voice": true }
}audio में कोई caption फ़ील्ड नहीं है। from हर सर्विस संदेश पर आवश्यक है: आपके वर्कस्पेस का स्वामित्व वाला नंबर, Bird-प्रबंधित नहीं।
सीमाएँ
| फ़ील्ड | सीमा | लागू करने वाला |
|---|---|---|
| फ़ाइल साइज़ | 16 MB | केवल WhatsApp, फ़ेच पर (async) |
| फ़ॉर्मैट | AAC, AMR, MP3, M4A, या OGG OPUS कोडेक के साथ, मोनो | केवल WhatsApp, फ़ेच पर (async) |
| voice: true | .ogg/OPUS, मोनो आवश्यक; अन्य फ़ॉर्मैट ट्रांसक्रिप्शन विफल करते हैं | केवल WhatsApp, फ़ेच पर (async) |
| caption | मान्य फ़ील्ड नहीं | Bird, स्वीकृति पर (422, स्कीमा अस्वीकृति) |
| url | absolute, https, होस्ट हो, कोई raw स्पेस नहीं | Bird, स्वीकृति पर (422) |
Bird कुछ भी क्यू करने से पहले URL की संरचना जाँचता है; यह फ़ाइल का वास्तविक साइज़, फ़ॉर्मैट या कोडेक नहीं जाँचता, और यह नहीं जाँचता कि voice: true भेजा गया संदेश वाकई .ogg/OPUS है। केवल WhatsApp का अपना फ़ेच भेजते समय ऐसा कर सकता है। ऑडियो संदेश पर caption भेजना लंबाई त्रुटि नहीं है; यह फ़ील्ड इस arm की स्कीमा में मौजूद नहीं है, इसलिए यह अपरिचित प्रॉपर्टी के रूप में विफल होता है। हब का URL द्वारा मीडिया भेजना और मीडिया विफल होने पर देखें।
इनबाउंड ऑडियो संदेश पढ़ना
इनबाउंड ऑडियो संदेश वही audio ऑब्जेक्ट रखता है, साथ ही एक id और mime_type जो Bird ने फ़ाइल फ़ेच करके सीखे, और किसी भी दिशा में कोई caption नहीं। पूर्ण इनबाउंड रीड, whatsapp.received पेलोड, और ध्यान देने योग्य बातों के लिए WhatsApp ऑडियो प्राप्त करना देखें।
सीमाएँ और विफलता मोड
- कस्टमर सर्विस विंडो खुली होनी चाहिए। ऑडियो एक सर्विस संदेश है, केवल खुली विंडो के अंदर डिलीवर होता है; हब की कस्टमर सर्विस विंडो देखें।
- Bird http को अस्वीकार करता है; WhatsApp स्वयं इसे फ़ेच करेगा। पूर्ण संरचना जाँच के लिए हब का URL द्वारा मीडिया भेजना देखें।
- अस्वीकृत फ़ेच पर भी शुल्क लगता है। हब का मीडिया विफल होने पर देखें। WhatsApp से ऑडियो की अपनी अस्वीकृति टेक्स्ट स्वतंत्र रूप से मापी नहीं गई है, इसलिए इस मैपिंग को प्रति कारण पुष्टि के बजाय समरूपता से अनुमानित मानें।
- voice फ़्लैग यह बदलता है कि प्राप्तकर्ता का क्लाइंट संदेश कैसे रेंडर करता है, यह नहीं कि Bird क्या मान्य करता है। voice: true इसे वॉइस नोट के रूप में रेंडर करता है: यह ऑटो-डाउनलोड होता है, इनलाइन माइक्रोफ़ोन आइकन दिखाता है, और ट्रांसक्राइब हो सकता है। इसके लिए OPUS, मोनो में एन्कोड की गई .ogg फ़ाइल चाहिए; अन्य कोई भी फ़ॉर्मैट फिर भी भेजा जाता है, लेकिन प्राप्तकर्ता की तरफ़ ट्रांसक्रिप्शन विफल होता है। voice डिफ़ॉल्ट रूप से false होता है।
- WhatsApp का अपना play-icon थ्रेशोल्ड और "played" सिग्नल Bird द्वारा उजागर नहीं किया जाता। WhatsApp छोटे वॉइस नोट्स और played स्टेट के बारे में एक क्लाइंट व्यवहार दर्शाता है, लेकिन Bird दोनों को मॉडल नहीं करता; ऐसा इंटीग्रेशन न बनाएँ जो API से इन्हें पढ़ने की अपेक्षा करे।
- WhatsApp फ़ेच किए गए URL को लगभग 10 मिनट तक कैश करता है। उस विंडो के अंदर वही URL दोबारा भेजने पर पहले फ़ेच का डेटा मिलता है; नया फ़ेच पाने के लिए URL बदलें।
अगले कदम
- WhatsApp सर्विस संदेश: कस्टमर सर्विस विंडो और वह मॉडल जो हर सर्विस संदेश साझा करता है
- Video: ऑडियो के बजाय वीडियो क्लिप के लिए
- Stickers: बिना कैप्शन फ़ील्ड वाला एक और मीडिया arm
- 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
अभ्यास करें और इम्प्लीमेंटेशन ब्रीफ़ पाएँ