إرسال رسالة صوتية
تقبل الرسائل الصوتية OGG/Opus. المعلمات المطلوبة: instance_id، access_token، chatId، file[url]، file[filename]، file[mimetype]، convert.
تسجيل الدخول مطلوب
سجل الدخول لاستبدال المعرفات (Instance ID) ورمز الوصول (Access Token) بمعلومات حسابك الحقيقي لاختبار ال API مباشرة.
تسجيل الدخوللا توجد معاملات استعلام مطلوبة
هذه النهاية الطرفية لا تتوقع بيانات في الرابط.
توصيات
قم بتحويل الصوت إلى التنسيق الصحيح باستخدام ffmpeg قبل الإرسال.
اجعل الملاحظات الصوتية قصيرة (أقل من دقيقتين) لتفاعل أفضل.
اللمسة الإنسانية: إتقان محرك الرسائل الصوتية
الرسائل الصوتية هي الطريقة الأكثرشخصية للتواصل على واتساب، وغالبًا ما تُفضل لراحتها ورنينها العاطفي. توفر نقطة نهاية /v2/send/voice مسارًا متخصصًا لتقديم ملاحظات صوتية عالية الدقة تظهر كرسائل "الميكروفون الأزرق" الأصلية التي يتوقعها المستخدمون. يدير محرك صوت Wawp المتطلبات المعقدة لفك تشفير الصوت، وفرض نوع MIME، وتخزين الشبكة المؤقت لضمان تجربة استماع سلسة.
🏗️ محرك فك تشفير الصوت الذكي سحابيًا
واتساب محدد للغاية بشأن تنسيق الرسائل الصوتية الخاصة به. على عكس عمليات نقل ملفات الصوت القياسية (التي تظهر كمستندات)، يجب أن تكون الملاحظات الصوتية الحقيقية بتنسيق OGG/Opus مع رؤوس بيانات وصفية محددة. يسهل Wawp ذلك عليك:
- تقييم المصدر: يقوم المحرك بتحليل ملف المصدر من
file[url]الخاص بك. ويحدد معدل البت ومعدل العينة وبرنامج الترميز. - منطق "التحويل" (Convert Logic): عند تعيين
convert: true، يبدأ Wawp عملية فك تشفير سحابية عالية الأداء. يأخذ التنسيقات القياسية مثل MP3 أو AAC أو WAV ويحولها إلى ملف OGG/Opus الدقيق المحسن لتطبيق واتساب للجوال. - محاذاة نوع MIME: يضمن المحرك أن الملف الصادر لديه رأس
audio/ogg; codecs=opusالصحيح، والذي يطلق واجهة مستخدم "ملاحظة صوتية" المتخصصة على هاتف المستلم.
🛡️ أفضل الممارسات الاستراتيجية لتسليم الصوت
1. التسجيل من أجل الجودة
لضمان سماع رسائلك الصوتية المؤتمتة بشكل احترافي:
- معدل العينة: سجل صوت المصدر الخاص بك بتردد 16 كيلو هرتز أو 24 كيلو هرتز. تم تحسين تنفيذ Opus في واتساب لهذه النطاقات المنخفضة إلى المتوسطة، وغالبًا ما تؤدي الدقة الأعلى (مثل 48 كيلو هرتز) إلى زيادات غير ضرورية في حجم الملف دون مكاسب ملموسة في جودة سماعة الهاتف المحمول.
- أحادية مقابل ستيريو (Mono vs. Stereo): استخدم دائمًا Mono. سيقوم واتساب بخلط إشارات الستيريو إلى أحادية على أي حال، والملفات الأحادية تقلل من متطلبات النطاق الترددي لكل من خادمك ومستخدمك.
2. دورة حياة التحويل
- تلميح الكفاءة: إذا كان المصدر الخاص بك بالفعل OGG/Opus، يمكنك تعيين
convert: false. ومع ذلك، نوصي بالالتزام بـtrueللحماية من الحالات الحدودية حيث قد تكون البيانات الوصفية للمصدر غير دقيقة قليلاً، مما قد يؤدي إلى فشل زر التشغيل على بعض أجهزة Android. - تأخير فك التشفير: يضيف فك التشفير السحابي قدرًا صغيرًا من التأخير (عادةً 1-3 ثوانٍ) إلى وقت المعالجة. ضع ذلك في الاعتبار في منطق المهلة الخاص بتطبيقك.
3. تجربة المستخدم وسهولة الوصول
المراسلة الصوتية لا تتعلق فقط بالصوت؛ بل تتعلق بالسياق.
- مؤشر الكتابة: قبل إرسال ملاحظة صوتية، استدعِ نقطة النهاية
/v2/send/start-typing. هذا ينشئ حالة "جاري الكتابة..." أو "جاري تسجيل صوت..." على هاتف المستلم، مما يجعل الرسالة تبدو أكثر حيوية وأقل شبهًا ببث مؤتمت. - ملاحظات تفاعلية: في واجهتك الأمامية، اعرض مؤشر "جاري معالجة الصوت..." بعد أن يرسل المستخدم ملفًا صوتيًا لإدارة التوقعات أثناء مرحلة المعالجة السحابية.
🧩 حالات استخدام متقدمة
لافتات إشعارات مدعومة بالصوت
بدلاً من تحديث طلب نصي، أرسل ملاحظة صوتية مدتها 5 ثوانٍ تقول: "مرحبًا! طلبك في الطريق". تزيد اللمسة الشخصية بشكل كبير من التفاعل وولاء العلامة التجارية في الأسواق المحلية.
استجابة صوتية تفاعلية (IVR) لواتساب
قم ببناء بوت دعم حيث يمكن للمستخدمين إرسال ملاحظات صوتية للاستفسارات. يمكن لخلفية تطبيقك تحويل الصوت إلى نص باستخدام خدمة ذكاء اصطناعي، ثم الرد بملاحظة صوتية مسجلة مسبقًا عبر Wawp، مما يخلق واجهة صوتية حوارية حقًا.
🛠️ المزالق الشائعة والحلول
- أنواع Mime غير متطابقة: تقديم امتداد
.mp3مع نوع mimeaudio/oggسيؤدي غالبًا إلى إرجاع المحرك لخطأBad Request. تأكد من توافقfile[filename]وfile[mimetype]مع ملف المصدر الفعلي على خادمك. - رؤوس تالفة: تنتج بعض مسجلات الصوت ملفات OGG بأحجام صفحات غير قياسية. إذا وصلت ملاحظة صوتية ولكن لم تعمل، فهذه علامة على تلف الرؤوس. تفعيل
convert: trueيحل هذا الأمر دائمًا تقريبًا عن طريق إعادة بناء الملف من دفق الصوت الخام. - تطبيع مستوى الصوت: يمكن أن تكون الأصوات المؤتمتة صاخبة جدًا أو هادئة جدًا في بعض الأحيان. نوصي بتطبيع مقاطع المصدر الخاصة بك إلى -3dB لضمان مستوى صوت متسق بغض النظر عن إعدادات هاتف المستلم.
ملخص الإمكانيات:
- تقديم "ملاحظات صوتية" أصلية لواتساب (OGG/Opus) من أي عنوان URL عام (HTTPS).
- دعم كامل لفك التشفير السحابي من MP3 و AAC و WAV عبر علم
convert. - تكامل دقيق مع الخيوط والردود باستخدام معلمة
reply_to. - تقارير نجاح متسقة مع توليد معرف
message_idفريد. - محسّن للاستهلاك المحمول منخفض النطاق الترددي مع الحفاظ على وضوح صوتي عالٍ.
البارامترات
قم بتهيئة المعاملات المطلوبة للتفاعل مع نقطة النهاية هذه. جميع وسائط الاستعلام والبيانات مدرجة أدناه مع تفاصيلها.
محتوى الطلب
يرسل كـ JSONstring | المعرف الفريد لجلسة واتساب مثال: | ||
string | رمز وصول API مثال: | ||
string | معرف واتساب للمستلم (JID). يدعم الأفراد (@c.us)، المجموعات (@g.us)، والقنوات (@newsletter). مثال: | ||
string | عنوان URL متاح للعامة عبر HTTPS لملف الصوت مثال: | ||
string | اسم الملف للملاحظة الصوتية مثال: | ||
string | نوع MIME (يوصى بـ audio/ogg; codecs=opus) مثال: | ||
boolean | التحويل التلقائي إلى تنسيق OGG/Opus المتوافق مع واتساب مثال: | ||
string | — | معرف الرسالة التي تقوم بالرد عليها مثال: |
أمثلة الكود
استخدم أمثلة الكود الجاهزة لدمج واجهة برمجة التطبيقات (API) في مشروعك بسرعة وكفاءة. اختر لغة البرمجة والمكتبة التي تفضلها.
الردود المتوقعة
استكشف كافة الردود والنتائج المحتملة من الخادم. قمنا بتوثيق كل كود حالة (Status Code) مع أمثلة للبيانات لتسهيل معالجة الأخطاء والنجاح.
Example
{
"_data": {
"id": {
"fromMe": true,
"remote": "000000000000@c.us",
"id": "MSG_ID_123456",
"_serialized": "true_000000000000@c.us_MSG_ID_123456"
},
"viewed": false,
"body": "BASE64_IMAGE_DATA",
"type": "image",
"t": 1759108866,
"from": {
"server": "c.us",
"user": "111111111111",
"_serialized": "111111111111@c.us"
},
"to": {
"server": "c.us",
"user": "000000000000",
"_serialized": "000000000000@c.us"
},
"ack": 0,
"isNewMsg": true,
"star": false,
"kicNotified": false,
"caption": "Here's your requested image.",
"deprecatedMms3Url": "https://example.com/media-url",
"directPath": "/media/direct/path/example",
"mimetype": "image/jpeg",
"filehash": "FILE_HASH_PLACEHOLDER",
"encFilehash": "ENC_FILE_HASH_PLACEHOLDER",
"size": 192487,
"mediaKey": "MEDIA_KEY_PLACEHOLDER",
"mediaKeyTimestamp": 1759108865,
"streamable": false,
"mediaHandle": null,
"isFromTemplate": false,
"pollInvalidated": false,
"isSentCagPollCreation": false,
"latestEditMsgKey": null,
"latestEditSenderTimestampMs": null,
"mentionedJidList": {
},
"groupMentions": {
},
"isEventCanceled": false,
"eventInvalidated": false,
"isVcardOverMmsDocument": false,
"isForwarded": false,
"isQuestion": false,
"questionReplyQuotedMessage": null,
"questionResponsesCount": 0,
"readQuestionResponsesCount": 0,
"labels": {
},
"hasReaction": false,
"disappearingModeInitiator": "chat",
"disappearingModeTrigger": "chat_settings",
"productHeaderImageRejected": false,
"lastPlaybackProgress": 0,
"isDynamicReplyButtonsMsg": false,
"isCarouselCard": false,
"parentMsgId": null,
"callSilenceReason": null,
"isVideoCall": false,
"callDuration": null,
"callCreator": null,
"callParticipants": null,
"isCallLink": null,
"callLinkToken": null,
"isMdHistoryMsg": false,
"stickerSentTs": 0,
"lastUpdateFromServerTs": 0,
"invokedBotWid": null,
"bizBotType": null,
"botResponseTargetId": null,
"botPluginType": null,
"botPluginReferenceIndex": null,
"botPluginSearchProvider": null,
"botPluginSearchUrl": null,
"botPluginSearchQuery": null,
"botPluginMaybeParent": false,
"botReelPluginThumbnailCdnUrl": null,
"botMessageDisclaimerText": null,
"botMsgBodyType": null,
"requiresDirectConnection": false,
"bizContentPlaceholderType": null,
"hostedBizEncStateMismatch": false,
"senderOrRecipientAccountTypeHosted": false,
"placeholderCreatedWhenAccountIsHosted": false,
"galaxyFlowDisabled": false,
"links": {
}
},
"mediaKey": "MEDIA_KEY_PLACEHOLDER",
"id": {
"fromMe": true,
"remote": "000000000000@c.us",
"id": "MSG_ID_123456",
"_serialized": "true_000000000000@c.us_MSG_ID_123456"
},
"ack": 0,
"hasMedia": true,
"body": "Here's your requested image.",
"type": "image",
"timestamp": 1759108866,
"from": "111111111111@c.us",
"to": "000000000000@c.us",
"deviceType": "android",
"isForwarded": false,
"forwardingScore": 0,
"isStatus": false,
"isStarred": false,
"fromMe": true,
"hasQuotedMsg": false,
"hasReaction": false,
"vCards": {
},
"mentionedIds": {
},
"groupMentions": {
},
"isGif": false,
"links": {
}
}Command Palette
Search for a command to run...