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 +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",
"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, या OPUS कोडेक के साथ OGG, मोनो | केवल WhatsApp, फ़ेच के समय (async) |
voice: true | .ogg/OPUS, मोनो ज़रूरी है; दूसरे फ़ॉर्मेट में ट्रांसक्रिप्शन विफल हो जाता है | केवल WhatsApp, फ़ेच के समय (async) |
caption | मान्य फ़ील्ड नहीं है | Bird, स्वीकार करते समय (422, स्कीमा अस्वीकृति) |
url | पूर्ण URL, https, होस्ट होना ज़रूरी, कोई कच्चा स्पेस नहीं | Bird, स्वीकार करते समय (422) |
Bird कुछ भी कतार में डालने से पहले URL का स्वरूप जाँचता है। यह फ़ाइल का वास्तविक आकार, फ़ॉर्मैट या कोडेक नहीं जाँचता, और यह भी नहीं जाँचता कि voice: true वाला संदेश वास्तव में .ogg/OPUS है या नहीं। यह केवल भेजते समय WhatsApp की अपनी फ़ेच से ही पता चल सकता है। ऑडियो संदेश पर caption भेजना लंबाई की त्रुटि नहीं है। यह फ़ील्ड इस प्रकार के स्कीमा में मौजूद ही नहीं है, इसलिए अनुरोध अज्ञात प्रॉपर्टी के रूप में विफल होता है। हब के URL से मीडिया भेजना और मीडिया विफल होने पर देखें।
आने वाला ऑडियो संदेश पढ़ना
आने वाले ऑडियो संदेश में वही audio ऑब्जेक्ट होता है, साथ में id और mime_type भी होते हैं, जो Bird ने फ़ाइल फ़ेच करके जाने। किसी भी दिशा में caption नहीं होता। आने वाले संदेश को पूरी तरह पढ़ने, whatsapp.received पेलोड और ध्यान रखने योग्य बातों के लिए WhatsApp ऑडियो प्राप्त करना देखें।
सीमाएँ और विफलता की स्थितियाँ
- ग्राहक सेवा विंडो खुली होनी चाहिए। ऑडियो एक सेवा संदेश है, जो केवल खुली विंडो के भीतर डिलीवर हो सकता है। हब का ग्राहक सेवा विंडो देखें।
- Bird
httpको अस्वीकार करता है, जबकि WhatsApp स्वयं उसे फ़ेच कर लेता। स्वरूप की पूरी जाँच के लिए हब का URL से मीडिया भेजना देखें। - अस्वीकृत फ़ेच का भी शुल्क लगता है। हब का मीडिया विफल होने पर देखें। WhatsApp से मिलने वाले ऑडियो के अपने अस्वीकृति संदेश स्वतंत्र रूप से मापे नहीं गए हैं, इसलिए इस मैपिंग को हर कारण के लिए पुष्ट नहीं, बल्कि समानता के आधार पर अनुमानित मानें।
voiceफ़्लैग यह बदलता है कि प्राप्तकर्ता का क्लाइंट संदेश कैसे दिखाता है, यह नहीं कि Bird क्या जाँचता है।voice: trueइसे वॉइस नोट के रूप में दिखाता है: यह अपने-आप डाउनलोड होता है, इनलाइन माइक्रोफ़ोन आइकन दिखाता है, और इसका ट्रांसक्रिप्शन हो सकता है। इसके सही काम करने के लिए OPUS से एन्कोड की गई मोनो.oggफ़ाइल चाहिए। कोई अन्य फ़ॉर्मैट भी भेजा जाता है, लेकिन प्राप्तकर्ता की ओर ट्रांसक्रिप्शन विफल होता है।voiceका डिफ़ॉल्ट मानfalseहै।- WhatsApp की अपनी प्ले-आइकन सीमा और "played" संकेत Bird में दिखाई नहीं देते। WhatsApp छोटे वॉइस नोट और चलाए जा चुके संदेश की स्थिति के लिए क्लाइंट के एक व्यवहार का दस्तावेज़ देता है, लेकिन Bird इन दोनों में से किसी को मॉडल नहीं करता। ऐसा इंटीग्रेशन न बनाएँ जो इनमें से किसी को भी API से वापस पढ़ने की उम्मीद करे।
- WhatsApp फ़ेच किए गए URL को लगभग 10 मिनट तक कैश करता है। उस अवधि के भीतर वही URL दोबारा भेजने पर पहली बार फ़ेच की गई फ़ाइल ही फिर से भेजी जाती है। नई फ़ाइल फ़ेच करवाने के लिए URL बदलें।
अगले कदम
- WhatsApp सर्विस संदेश: ग्राहक सेवा विंडो और वह मॉडल जो हर सर्विस संदेश पर लागू होता है
- वीडियो: ऑडियो के बजाय वीडियो क्लिप भेजने के लिए
- स्टिकर: एक और मीडिया प्रकार, जिसमें कैप्शन फ़ील्ड नहीं होता
- WhatsApp संदेश भेजना: अनुरोध का ढाँचा,
202मॉडल और सुरक्षित तरीके से फिर से प्रयास करना
संबंधित संसाधन
इस विषय के लिए दस्तावेज़, गाइड और उदाहरणों के साथ आगे बढ़ें।