مرجع الحمولة (Payload)
مرجع لرسالة Payload المستخدمة بواسطة Notify عند الإرسال عبر أي قناة غير البريد الإلكتروني (push, SMS, Telegram, Kakao, LINE, Viber, WhatsApp).
الحمولة (Payload)
Anchor link topreset(string): كود الإعداد المسبق للإشعارات (بالتنسيقXXXXX-XXXXX) لتطبيقه على هذه الرسالة.sms_preset(string): كود (بالتنسيقXXXXX-XXXXX) لـ إعداد مسبق لرسائل SMS محفوظ. يتم تحليل نصه لكل لغة محلية فيsms.bodyالخاص بكل لغة. أيsms.bodyمضمن للغة معينة يتجاوز الإعداد المسبق لتلك اللغة. يجب أن ينتمي الإعداد المسبق إلى نفس التطبيق الذي تنتمي إليه الرسالة.content(LocalizedContent): محتوى الرسالة. متعارض معsilent.silent(bool): إرسال إشعار صامت (بيانات فقط). متعارض معcontent.custom_data(object): كائن JSON حر الشكل يتم تمريره إلى SDK العميل كمعلمةu.open_action(OpenAction): الإجراء الذي يتم تشغيله عندما يفتح المستخدم الإشعار.open_actions(map<Platform,OpenAction>): تجاوزopen_actionلكل منصة. المفتاح هو قيمة رقمية لتعدادPlatform.voip_push(bool): إشعار iOS VoIP.
{ "payload": { "preset": "XXXXX-XXXXX", "content": { "localized_content": { "default": { "ios": { "title": "Hello", "body": "Tap to view" } } } }, "custom_data": { "order_id": "42" }, "open_action": { "link": { "url": "https://example.com/promo" } } }}المحتوى المترجم (LocalizedContent)
Anchor link toيربط كود اللغة المحلية ← المحتوى لكل منصة. المفاتيح هي أكواد من حرفين وفقًا لمعيار ISO 639-1 (على سبيل المثال، "en"، "es") بالإضافة إلى المفتاح الخاص "default" للترجمة الشاملة. الاستثناءات من ISO 639-1 هي "zh-Hant" و "zh-Hans" للصينية التقليدية والمبسطة.
{ "localized_content": { "default": { "ios": { "title": "Hello", "body": "Tap to view" }, "android": { "title": "Hello", "body": "Tap to view" } }, "es": { "ios": { "title": "Hola", "body": "Toca para ver" }, "android": { "title": "Hola", "body": "Toca para ver" } } }}اختيار اللغة المحلية للجهاز
Anchor link toيتم اختيار المحتوى الذي يتم تسليمه إلى الجهاز بهذا الترتيب:
- تطابق تام مع لغة الجهاز.
- المفتاح
"default". - المفتاح
"en". - أي لغة محلية أخرى موجودة في الخريطة.
وفر على الأقل واحدًا من "default" أو "en" حتى يكون لكل جهاز احتياطي محدد. إذا كنت لا تتوقع متغيرات لكل لغة محلية، أرسل "default" فقط.
كل إدخال لغة محلية هو كائن Content مع كتل اختيارية لكل منصة. املأ فقط المنصات التي تستهدفها.
| كتلة المنصة | القناة |
|---|---|
ios | إشعار iOS |
android | إشعار Android (FCM) |
huawei_android | إشعار Huawei Android |
mac_os | إشعار macOS |
amazon | إشعار Amazon (ADM) |
safari | إشعار ويب Safari |
chrome | إشعار ويب Chrome |
firefox | إشعار ويب Firefox |
ie | إشعار ويب Internet Explorer |
windows | إشعار Windows (tile / toast / badge) |
telegram | رسالة Telegram |
kakao | رسالة Kakao |
line | رسالة LINE |
viber | رسالة Viber |
whatsapp | رسالة WhatsApp |
sms | رسالة SMS |
حقول الإشعارات المشتركة
Anchor link toهذه الحقول مشتركة بين كتل ios، android، huawei_android، mac_os، amazon، safari، chrome، و firefox (يختلف الدعم. يتم تجاهل الحقول غير المستخدمة من قبل المنصة المعنية).
title(string): عنوان الإشعار.body(string): نص الإشعار.time_to_live(duration, e.g."3600s"): المدة التي يجب أن يحتفظ فيها خادم الإشعارات بالإشعار لجهاز غير متصل بالإنترنت.sound(string): اسم ملف الصوت.sound_enabled(bool): تمكين أو كتم الصوت.badges(string): عدد الشارات (iOS) أو ما يعادله.root_params(object): تجاوزات الحمولة الأولية الخاصة بالمنصة.inbox(Inbox): إدخال صندوق الوارد.
{ "android": { "title": "Hello", "body": "Tap to view", "time_to_live": "3600s", "sound": "default", "sound_enabled": true, "badges": "+1" }}iOS (ios)
Anchor link tosubtitle(string): العنوان الفرعي لإشعار iOS.is_critical(bool): تنبيه حرج (يتطلب استحقاقًا).attachment(string): عنوان URL لمرفق وسائط.thread_id(string): معرف السلسلة للإشعارات المجمعة.trim_content(bool): قص المحتوى ليلائم الحجم.category_id(string): معرفUNNotificationCategoryللإجراءات التفاعلية.interruption_level(string):passive،active،time-sensitive، أوcritical.collapse_id(string): معرف طي APNs. الإشعارات التي لها نفسcollapse_idتحل محل بعضها البعض على الجهاز.
{ "ios": { "title": "Hello", "body": "Tap to view", "subtitle": "New update", "attachment": "https://cdn.example.com/image.png", "interruption_level": "active", "thread_id": "promo" }}Android (android, huawei_android)
Anchor link toicon(string): أيقونة الإشعار الصغيرة.banner(string): عنوان URL للصورة الكبيرة.delivery_priority(NORMAL|HIGH): أولوية تسليم FCM.vibration(bool): اهتزاز عند الاستلام.led_color(string, hex): لون LED للإشعار.icon_background_color(string, hex): لون خلفية الأيقونة.show_on_lockscreen(bool): العرض على شاشة القفل.custom_icon(string): عنوان URL لأيقونة مخصصة.priority(NotificationPriority): الأولوية في درج الإشعارات.group_id(string): مفتاح مجموعة الإشعارات.collapse_key(string): مفتاح طي FCM. الإشعارات التي لها نفسcollapse_keyتحل محل بعضها البعض أثناء عدم اتصال الجهاز بالإنترنت.
{ "android": { "title": "Hello", "body": "Tap to view", "icon": "ic_notification", "banner": "https://cdn.example.com/banner.png", "led_color": "#FF0000", "priority": "PRIORITY_HIGH", "delivery_priority": "HIGH" }}macOS (mac_os)
Anchor link toيستخدم حقول الإشعارات المشتركة بالإضافة إلى subtitle و action (عنوان URL الذي يتم فتحه عند نقر المستخدم على الإشعار).
{ "mac_os": { "title": "Hello", "body": "Tap to view", "subtitle": "New update", "action": "https://example.com/promo" }}Amazon (amazon)
Anchor link toيستخدم حقول الإشعارات المشتركة بالإضافة إلى custom_icon و priority (NotificationPriority).
{ "amazon": { "title": "Hello", "body": "Tap to view", "custom_icon": "https://cdn.example.com/icon.png", "priority": "PRIORITY_HIGH" }}Safari (safari)
Anchor link toaction(string): عنوان URL الذي يتم فتحه عند نقر المستخدم على الإشعار.url_arguments(array of string): وسائط URL لـ Safari يتم استبدالها في قالب URL لإشعارات الويب.
{ "safari": { "title": "Hello", "body": "Tap to view", "action": "https://example.com/promo", "url_arguments": ["promo", "2026"] }}Chrome (chrome)
Anchor link toicon,image(string): عناوين URL للأيقونة الصغيرة والصورة الكبيرة.duration(duration): مؤقت الإغلاق التلقائي.button_text1/button_url1,button_text2/button_url2: ما يصل إلى زرين للإجراء.
{ "chrome": { "title": "Hello", "body": "Tap to view", "icon": "https://cdn.example.com/icon.png", "image": "https://cdn.example.com/banner.png", "duration": "20s", "button_text1": "Open", "button_url1": "https://example.com/promo" }}Firefox (firefox)
Anchor link toيستخدم فقط title، body، icon، root_params، و inbox.
{ "firefox": { "title": "Hello", "body": "Tap to view", "icon": "https://cdn.example.com/icon.png" }}Windows (windows)
Anchor link toيستخدم Windows شكلاً مختلفًا:
{ "windows": { "type": "TOAST", "template": { "title": "Hello", "body": "Tap to view" }, "tag": "promo", "cache": true, "time_to_live": "3600s" }}typeهوTILE،TOAST، أوBADGE.template(منظم) أوraw({ "content": "<raw xml>" }) — واحد فقط.
Telegram (telegram)
Anchor link tobody(string): نص الرسالة.content_variables(string): متغيرات بتنسيق JSON-stringified لقالب جانب الروبوت (bot).
{ "telegram": { "body": "Hello from Pushwoosh", "content_variables": "{\"name\":\"John\"}" }}Kakao (kakao)
Anchor link tocontent(string): محتوى الرسالة.template(string): كود القالب المعتمد.content_variables(string): روابط متغيرات القالب بتنسيق JSON-stringified.
{ "kakao": { "content": "Hello from Pushwoosh", "template": "welcome_v1", "content_variables": "{\"name\":\"John\"}" }}LINE (line)
Anchor link tocontent(string): نص عادي.template(string): كود قالب LINE تم تكوينه في لوحة تحكم Pushwoosh (يستخدم لإرسال رسائل صور، أو دوارة، أو مرنة). للمحتوى الغني، قم بتكوين القالب مسبقًا في لوحة التحكم وقم بالإشارة إليه هنا.
يجب تعيين واحد على الأقل من content أو template.
{ "line": { "content": "Hello from Pushwoosh", "template": "promo_carousel" }}Viber (viber)
Anchor link toرسالة Viber هي إما نص حر أو قالب معاملات معتمد مسبقًا (Omni Messaging / MStat) تتم الإشارة إليه بالمعرف واللغة.
body(string): رسالة نصية عادية. مطلوب عندما لا يتم تعيينtemplate_id.template_id(string): معرف قالب معاملات معتمد مسبقًا. عند تعيينه، يكون له الأسبقية علىbody.template_lang(string): لغة القالب المحلية. مطلوب عند تعيينtemplate_id.template_params(map<string, string>): روابط مفتاح/قيمة يتم استبدالها في القالب، على سبيل المثال{ "name": "John", "code": "123456" }.all_devices(bool):false(الافتراضي) يسلم إلى الجهاز الأساسي للمستخدم فقط؛trueيسلم إلى جميع أجهزة المستخدم.
يجب تعيين واحد على الأقل من body أو template_id. عند تعيين template_id، يكون template_lang مطلوبًا.
قم بتوجيه مستلمي Viber كـ hwids في شكل viber:<phone> (E.164)، على سبيل المثال viber:+1234567890.
نص عادي:
{ "viber": { "body": "Hello from Pushwoosh" }}قالب معاملات:
{ "viber": { "template_id": "e3dec4a0-c063-4b0f-96d5-cf9d629a7abe", "template_lang": "en", "template_params": { "name": "John", "code": "123456", "expires_in": "5 minutes" }, "all_devices": false }}WhatsApp (whatsapp)
Anchor link toتمر رسائل WhatsApp عبر Meta وتخضع لقواعد المراسلة الخاصة بـ Meta. الانقسام الرئيسي هو بين النص الحر (يتم تسليمه فقط داخل نافذة خدمة العملاء لمدة 24 ساعة التي تفتحها رسالة واردة من المستخدم) والقوالب المعتمدة (مطلوبة لبدء المراسلة الصادرة ولأي رسالة خارج نافذة الـ 24 ساعة).
content(string): نص رسالة حر. يتم تسليمه بواسطة Meta فقط داخل نافذة الـ 24 ساعة.content_id(string): اسم قالب Meta معتمد مسبقًا (على سبيل المثال،"hello_world"). مطلوب لبدء المراسلة الصادرة أو أي رسالة خارج نافذة الـ 24 ساعة.language(string): لغة القالب المحلية التي يجب أن تتطابق تمامًا مع اللغة المعتمدة في Meta (على سبيل المثال،"en_US"،"en_GB"). لها معنى فقط معcontent_id. هذا مستقل عن مفتاحLocalizedContentالخارجي. يختار المفتاح الخارجي المحتوى لجهاز، وlanguageيختار لغة قالب Meta المحلية لذلك المحتوى.content_variables(string): كائن JSON يربط العناصر النائبة في النص، على سبيل المثال"{\"1\":\"John\"}".button_url_variables(string): كائن JSON يربط العناصر النائبة في عنوان URL للزر مفهرسة حسب فهرس الزر، على سبيل المثال"{\"0\":\"https://...\"}".header_variables(string): كائن JSON يربط العناصر النائبة في الرأس مفهرسة حسب النوع، على سبيل المثال"{\"image\":\"https://...\"}".
يجب تعيين واحد على الأقل من content أو content_id.
{ "whatsapp": { "content_id": "hello_world", "language": "en_US", "content_variables": "{\"1\":\"John\"}" }}SMS (sms)
Anchor link toلدى SMS كتلة منصة خاصة بها داخل Content لكل لغة محلية، إلى جانب ios، android، وقنوات المراسلة الأخرى.
body(string): نص SMS للغة المحلية. مطلوب عند وجود كتلةsms.
هناك طريقتان لتوفير النص:
- مضمن — قم بتعيين
sms.bodyلكل لغة محلية فيlocalized_content. - من إعداد مسبق — قم بتعيين
sms_presetعلى مستوى الحمولة إلى كود (بالتنسيقXXXXX-XXXXX) لـ إعداد مسبق لرسائل SMS محفوظ. يتم تحليل محتواه لكل لغة محلية فيsms.bodyلكل لغة يحددها الإعداد المسبق. أيsms.bodyمضمن للغة محلية يتجاوز الإعداد المسبق لتلك اللغة، لذا يمكنك إعادة استخدام إعداد مسبق مع تعديل لغات فردية.
{ "payload": { "sms_preset": "XXXXX-XXXXX", "content": { "localized_content": { "default": { "sms": { "body": "Your order has shipped." } }, "es": { "sms": { "body": "Tu pedido ha sido enviado." } } } } }}إضافة subject و file_urls إلى كتلة sms تحول الرسالة إلى MMS. فقط AbleMobile لديها نقطة نهاية MMS — يتجاهل موفرو SMS الآخرون كلا الحقلين ويسلمون body النصي العادي فقط.
subject(string): موضوع MMS. يتطلب إدخالًا واحدًا على الأقل فيfile_urls— يتم رفض موضوع بدون مرفقات. ما يصل إلى 40 حرفًا ASCII، أو 13 حرفًا إذا كان الموضوع يحتوي على أحرف غير ASCII.file_urls(array of string): ما يصل إلى 3 عناوين URL للمرفقات. يجب أن يكون كل منها عنوان URL مطلقًاhttpsينتهي بـ.jpgأو.gif— يتم رفض.jpegو.pngبواسطة التحقق من الصحة، حتى لو كان ملف JPEG أو PNG حقيقيًا، لأن الموفر لا يمكنه فك تشفيرهما. يجب أن يكون كل ملف أيضًا 200 كيلوبايت أو أصغر؛ يرفض AbleMobile الإرسال بأكمله إذا كان أي مرفق أثقل.message_at(int): فهرس فيfile_urls(يبدأ من 0) يتم عرض نص رسالة SMS بعده.
يدعم subject و file_urls تخصيص Liquid، تمامًا مثل body.
{ "sms": { "body": "Your order has shipped.", "subject": "Order update", "file_urls": [ "https://cdn.example.com/shipping-label.jpg", "https://cdn.example.com/tracking-map.gif" ], "message_at": 1 }}OpenAction
Anchor link toيحدد الإجراء الذي يتم تنفيذه عندما يفتح المستخدم الرسالة.
واحد فقط مما يلي:
rich_media(RichMedia): فتح صفحة وسائط غنية.deep_link: فتح رابط عميق:{ "code": "flow-code", "params": { "key": "value" } }.link(Link): فتح عنوان URL.
{ "open_action": { "deep_link": { "code": "flow-code", "params": { "promo": "summer" } } }}يدعم عنوان URL للرابط العميق وقيم params صيغة تخصيص Liquid — يتم تحليل التعبيرات قبل فتح الرابط العميق.
RichMedia
Anchor link to{ "code": "XXXXX-XXXXX" } // بواسطة كود الوسائط الغنية{ "url": "https://..." } // بواسطة عنوان URL عن بعدLink
Anchor link to{ "url": "https://example.com/promo", "shortener": "BITLY"}shortener هو NONE (الافتراضي) أو BITLY.
صندوق الوارد (Inbox)
Anchor link toيقوم بتكوين كيفية ظهور الرسالة في صندوق الوارد.
{ "image_url": "https://cdn.example.com/inbox.png", "expiration_date": "2026-05-15T00:00:00Z"}image_url(string): الصورة المعروضة في إدخال صندوق الوارد.expiration_date(timestamp): وقت إزالة الإدخال من صندوق الوارد.
تعداد NotificationPriority
Anchor link toيتحكم في أولوية الإشعار على الجهاز المستهدف، من PRIORITY_MIN (الأدنى) إلى PRIORITY_MAX (الأعلى).
PRIORITY_UNSPECIFIEDPRIORITY_MINPRIORITY_LOWPRIORITY_DEFAULTPRIORITY_HIGHPRIORITY_MAX
مثال: إرسال إشعار إلى شريحة
Anchor link tocurl -X POST https://api.pushwoosh.com/messaging/v2/notify \ -H "Authorization: Token YOUR_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "segment": { "application": "XXXXX-XXXXX", "platforms": ["IOS", "ANDROID"], "code": "active_users", "payload": { "content": { "localized_content": { "en": { "ios": { "title": "Hello", "body": "Hello, world!" }, "android": { "title": "Hello", "body": "Hello, world!" } }, "es": { "ios": { "title": "¡Hola!", "body": "¡Hola, mundo!" }, "android": { "title": "¡Hola!", "body": "¡Hola, mundo!" } } } }, "open_action": { "link": { "url": "https://example.com/promo" } } }, "schedule": { "at": "2026-05-01T12:00:00Z" }, "message_type": "MESSAGE_TYPE_MARKETING" } }'مثال: إشعار معاملات حسب معرفات المستخدمين
Anchor link tocurl -X POST https://api.pushwoosh.com/messaging/v2/notify \ -H "Authorization: Token YOUR_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "transactional": { "application": "XXXXX-XXXXX", "platforms": ["IOS", "ANDROID"], "users": { "list": ["customer-42"] }, "payload": { "content": { "localized_content": { "default": { "ios": { "title": "Your order", "body": "Order #42 has shipped." }, "android": { "title": "Your order", "body": "Order #42 has shipped." } } } }, "custom_data": { "order_id": "42" } }, "schedule": { "at": "2026-05-01T12:00:00Z" }, "message_type": "MESSAGE_TYPE_TRANSACTIONAL" } }'