واجهة برمجة تطبيقات الرسائل (Messages API)
createMessage مهمل
Anchor link toPOST https://api.pushwoosh.com/json/1.3/createMessage
تُنشئ إشعار دفع جديد.
نص الطلب
Anchor link to| الاسم | النوع | الوصف |
|---|---|---|
| auth* | string | رمز الوصول إلى API من لوحة تحكم Pushwoosh. |
| application* | string | رمز تطبيق Pushwoosh |
| notifications* | array | مصفوفة JSON من معلمات الرسالة. انظر التفاصيل في مثال الطلب أدناه. |
{ "status_code": 200, "status_message": "OK", "response": { "Messages": [ "C3F8-C3863ED4-334AD4F1" ] }}مثال على الطلب
Anchor link to{ "request": { "application": "XXXXX-XXXXX", // مطلوب. رمز تطبيق Pushwoosh. "auth": "yxoPUlwqm…………pIyEX4H", // مطلوب. رمز الوصول إلى API من لوحة تحكم Pushwoosh. "notifications": [{ "send_date": "now", // اختياري. YYYY-MM-DD HH:mm أو 'now' "content": { // اختياري. كائن أو سلسلة نصية. "en": "English", // استخدم "wns_content" بدلاً من ذلك لنظام Windows. "fr": "French" }, "title": { // اختياري. كائن أو سلسلة نصية. "en": "Title", // يتم تجاهله إذا تم تحديد عناوين خاصة بالمنصة "fr": "Titre" // 'ios_title', 'android_header', إلخ. }, // انظر أمثلة المعلمات الخاصة بالمنصة أدناه. "subtitle":{ // اختياري. كائن أو سلسلة نصية. "en": "Subtitle", // يتم تجاهله إذا تم تحديد عناوين خاصة بالمنصة "fr": "Sous-titre" // 'ios_subtitle', إلخ. }, // انظر أمثلة المعلمات الخاصة بالمنصة أدناه. "ignore_user_timezone": true, // اختياري. "timezone": "America/New_York", // اختياري. إذا تم تجاهله، يكون UTC-0 هو الافتراضي لـ "send_date". // انظر https://php.net/manual/timezones.php // للمناطق الزمنية المدعومة. "campaign": "CAMPAIGN_CODE", // اختياري. رمز الحملة الذي تريد تعيين // رسالة الدفع هذه إليه. "geozone": { // اختياري. إرسال إلى منطقة جغرافية "lat": 22.22, "lng": 33.33, "range": 110 }, "rich_media": "XXXXX-XXXXX", // اختياري. انسخ رمز الوسائط الغنية من شريط URL // لصفحة محرر الوسائط الغنية في لوحة تحكم Pushwoosh. "link": "https://google.com", // اختياري. للروابط العميقة أضف "minimize_link": 0 "minimize_link": 0, // اختياري. 0 — عدم التصغير، 2 — bitly. الافتراضي = 2. // يرجى ملاحظة أن أدوات تقصير الروابط لها قيود // على عدد الاستدعاءات. "data": { // اختياري. سلسلة JSON أو كائن JSON، سيتم تمريره "key": "value" // كمعلمة "u" في الحمولة (محولة إلى سلسلة JSON). }, "transactionId": "unique UUID", // اختياري. معرف رسالة فريد لمنع التكرار // في حالة مشاكل الشبكة. يتم تخزينه على جانب // Pushwoosh لمدة 5 دقائق. "platforms": [ // اختياري. 1 — iOS؛ 3 — Android؛ 7 — Mac OS X؛ 8 — Windows؛ 1, 3, 7, 8, 9, 10, // 9 — Amazon؛ 10 — Safari؛ 11 — Chrome؛ 11, 12, 17 // 12 — Firefox؛ 17 — Huawei ], "preset": "XXXXX-XXXXX", // اختياري. رمز الإعداد المسبق للدفع من لوحة التحكم الخاصة بك. // إذا تم إرسال معلمات محددة في الطلب، // فإنها تتجاوز معلمات الإعداد المسبق. "send_rate": 100, // اختياري. التقييد. القيم الصالحة هي من 100 إلى 1000 دفعة/ثانية. "send_rate_avoid": true, // اختياري. إذا تم تعيينه إلى true، فلن يتم تطبيق حد التقييد // على هذا الإشعار بالدفع المحدد. // متعلق بالقوالب، يرجى الرجوع إلى دليل محرك القوالب لمعرفة المزيد "template_bindings": { // اختياري. "TemplatePlaceholder": "Value" }, "dynamic_content_placeholders": { // اختياري. عناصر نائبة للمحتوى الديناميكي بدلاً من علامات الجهاز. "firstname": "John", "lastname": "Doe" }, "message_type": "marketing", // اختياري. "marketing" أو "transactional". // إذا تم حذفه، يتم التعامل معه على أنه transactional: يتم تسليمه للجميع. // لا يتم تسليم الرسائل التسويقية لأعضاء المجموعة الضابطة.
// معلمات تحديد التكرار. تأكد من تكوين تحديد التكرار العالمي في لوحة التحكم. // لا ينطبق تحديد التكرار على الرسائل المتعلقة بالمعاملات. // في جميع الحالات الأخرى، بما في ذلك "message_type" المحذوف، ينطبق تحديد التكرار. "capping_days": 30, // اختياري. عدد الأيام لتحديد التكرار (بحد أقصى 30 يومًا) "capping_count": 10, // اختياري. الحد الأقصى لعدد الدفعات التي يمكن إرسالها من // تطبيق معين إلى جهاز معين خلال فترة 'capping_days'. // في حالة تجاوز الرسالة التي تم إنشاؤها حد // 'capping_count' لجهاز ما، فلن // يتم إرسالها إلى ذلك الجهاز. "capping_exclude": true, // اختياري. إذا تم تعيينه إلى true، فلن يتم احتساب هذا الإشعار بالدفع // ضمن تحديد التكرار للدفعات المستقبلية. "capping_avoid": true, // اختياري. إذا تم تعيينه إلى true، فلن يتم تطبيق تحديد التكرار // على هذا الإشعار بالدفع المحدد.
// لحفظ الرسالة في صندوق الوارد عبر API، استخدم "inbox_date" أو "inbox_image". // يتم حفظ الرسالة عند استخدام أحد هذين المعلمين على الأقل. "inbox_date": "2017-02-02", // اختياري. حدد متى تتم إزالة رسالة من صندوق الوارد. // ستتم إزالة الرسالة من صندوق الوارد في الساعة 00:00:01 UTC // من التاريخ المحدد، لذا فإن اليوم السابق هو // آخر يوم يمكن للمستخدم رؤية الرسالة في صندوق الوارد الخاص به. // إذا لم يتم تحديده، فإن تاريخ الإزالة الافتراضي هو // اليوم التالي لتاريخ الإرسال. "inbox_image": "Inbox image URL", // اختياري. الصورة التي سيتم عرضها بجوار الرسالة. "inbox_days": 5, // اختياري. حدد متى تتم إزالة رسالة من // صندوق الوارد (عمر رسالة صندوق الوارد بالأيام). // يمكن استخدامه بدلاً من معلمة "inbox_date". // حتى 30 يومًا.
"devices": [ // اختياري. حدد الرموز المميزة أو hwids لإرسال دفعات مستهدفة "hwid_XXXX" // إشعارات. لا يزيد عن 1000 رمز/hwid في ], // مصفوفة. إذا تم تعيينه، سيتم إرسال الرسالة فقط إلى // الأجهزة الموجودة في القائمة. مجموعة التطبيقات لقائمة الأجهزة // غير مسموح بها. يمكن أن تكون رموز الدفع لنظام iOS بأحرف صغيرة فقط. "to": [ // اختياري. للبريد الإلكتروني والرسائل القصيرة والقنوات المماثلة. قائمة المستلمين "email_1", "email_2" // (على سبيل المثال، عناوين البريد الإلكتروني، أرقام الهواتف). 1000 عنصر كحد أقصى. ], // للدفع، استخدم "devices" بدلاً من ذلك. // إشعارات الدفع التي تركز على المستخدم "users": [ // اختياري. إذا تم تعيينه، سيتم تسليم الرسالة فقط إلى "user_XXXX" // معرفات المستخدم المحددة (المعينة عبر استدعاء /registerUser). ], // إذا تم تحديده مع devices أو to، // سيتم تجاهل الأخير. لا يزيد عن 1000 معرف مستخدم // في مصفوفة. مجموعة التطبيقات لقائمة المستخدمين // غير مسموح بها.
// المرشحات والشروط "filter": "FILTER_NAME", // اختياري. "conditions": [ // اختياري. انظر الملاحظة أدناه. ["Country", "EQ", "fr"], ["Language", "EQ", "en"] ], "conditions_operator": "AND" // اختياري. عامل منطقي لمصفوفات الشروط. // القيم الممكنة: AND | OR. AND هو الافتراضي. }] }}مثال على طلب إشعار VoIP
Anchor link toيدعم Pushwoosh إشعارات المكالمات بنمط VoIP لنظامي iOS و Android.
يمكنك أدناه العثور على أمثلة لطلبات createMessage API لكل منصة.
{ "request": { "application": "XXXXX-XXXXX", // مطلوب. رمز تطبيق Pushwoosh. "auth": "yxoPUlwqm…………pIyEX4H", // مطلوب. رمز الوصول إلى API من لوحة تحكم Pushwoosh. "notifications": [ { "voip_push": true, // مطلوب. المعلمة مطلوبة لإرسال إشعار دفع VoIP. "ios_root_params": { "aps": { "mutable-content": 1 // مطلوب لمرفقات الوسائط في iOS10+. }, "callerName": "CallerName", // اختياري. اسم المتصل. إذا لم يتم تحديده، يتم عرض "متصل غير معروف". "video": true, // اختياري. يشير إلى ما إذا كانت مكالمات الفيديو مدعومة. "supportsHolding": true, // اختياري. يشير إلى ما إذا كانت وظيفة تعليق المكالمات مدعومة. "supportsDTMF": false, // اختياري. يتحكم في دعم إشارة التردد المتعدد ثنائي النغمة. "callId": "42", // اختياري. المعرف الفريد للمكالمة المراد إلغاؤها. "cancelCall": true // اختياري. اضبط على "true" لإلغاء المكالمة بالمعرف "callId" المحدد. } } ] }}Android
Anchor link to{ "request": { "application": "XXXXX-XXXXX", // مطلوب. رمز تطبيق Pushwoosh. "auth": "yxoPUlwqm…………pIyEX4H", // مطلوب. رمز الوصول إلى API من لوحة تحكم Pushwoosh. "notifications": [ { "voip_push": true, // مطلوب. المعلمة مطلوبة لإرسال إشعار دفع VoIP. "android_root_params": { "callerName": "callerName", // اختياري. اسم المتصل. إذا لم يتم تحديده، يتم عرض "متصل غير معروف". "video": true, // اختياري. يشير إلى ما إذا كانت مكالمات الفيديو مدعومة. "callId": 42, // اختياري. المعرف الفريد للمكالمة المراد إلغاؤها. "cancelCall": true // اختياري. اضبط على "true" لإلغاء المكالمة بالمعرف "callId" المحدد. } } ] }}معلمات خاصة بالمنصة
Anchor link toمعلمات iOS
Anchor link to{ "request": { "application": "12345-67891", // مطلوب. رمز تطبيق Pushwoosh "auth": "yxoPUlwqm…………pIyEX4H", // مطلوب. رمز الوصول إلى API من لوحة تحكم Pushwoosh "notifications": [{ "ios_title": { // اختياري. كائن أو سلسلة نصية. يضيف عنوانًا خاصًا بـ iOS لإشعار الدفع. "en": "title" }, "ios_subtitle": { // اختياري. كائن أو سلسلة نصية. يضيف عنوانًا فرعيًا خاصًا بـ iOS لإشعار الدفع. "en": "subtitle" }, "ios_content": { // اختياري. كائن أو سلسلة نصية. يضيف محتوى خاصًا بـ iOS لإشعار الدفع. "en": "content" }, "ios_badges": 5, // اختياري. رقم شارة تطبيق iOS. // استخدم "+n" أو "-n" لزيادة/تقليل قيمة الشارة بمقدار n. "ios_sound": "sound file.wav", // اختياري. اسم ملف الصوت في الحزمة الرئيسية للتطبيق. // إذا ترك فارغًا، سيصدر الجهاز صوت نظام افتراضي. "ios_sound_off": true, // اختياري. تمكين/تعطيل الصوت المحدد بواسطة حقل "ios_sound". "ios_ttl": 3600, // اختياري. معلمة مدة البقاء - أقصى عمر للرسالة بالثواني. "ios_silent": 1, // اختياري. يُمكّن الإشعارات الصامتة (يتجاهل "sound" و "content"). "ios_category_id": "1", // اختياري. معرف فئة iOS8 من Pushwoosh. "ios_root_params": { // اختياري. معلمات المستوى الجذر لقاموس aps. "aps": { "content-available": "0", // اختياري. اضبط "1" لإرسال دفعة صامتة و "0" لدفعة عادية. "mutable-content": 1 // مطلوب لمرفقات الوسائط في iOS10+. }, "callerName": "CallerName", // معلمة VoIP اختيارية. اسم المتصل. إذا لم يتم تحديده، يتم عرض "متصل غير معروف". "video": true, // معلمة VoIP اختيارية. يشير إلى ما إذا كانت مكالمات الفيديو مدعومة. "supportsHolding": true, // معلمة VoIP اختيارية. يشير إلى ما إذا كانت وظيفة تعليق المكالمات مدعومة. "supportsDTMF": false, // معلمة VoIP اختيارية. يتحكم في دعم إشارة التردد المتعدد ثنائي النغمة. "data": {} // بيانات اختيارية مقدمة من المستخدم، بحد أقصى 4 كيلوبايت }, "ios_attachment": "URL", // اختياري. إدراج محتوى وسائط في الإشعار. "ios_thread_id": "some thread id", // اختياري. معرف لتجميع الإشعارات ذات الصلة. // سيتم تجميع الرسائل التي لها نفس معرف السلسلة // على شاشة القفل وفي مركز الإشعارات. "ios_critical": true, // اختياري. يحدد إشعار iOS كتنبيه حرج // يشغل الصوت حتى لو كان الجهاز في وضع صامت أو // وضع عدم الإزعاج قيد التشغيل. "ios_category_custom": "category", // اختياري. فئة APNS مخصصة. "ios_interruption_level": "active", // اختياري. واحد من "passive", "active", "time-sensitive", // "critical". يشير إلى أهمية // وتوقيت تسليم الإشعار. ارجع إلى // دليل الدفع لمرة واحدة للحصول على التفاصيل. "apns_collapse_id": "promo", // اختياري. معرف طي APNs. الإشعارات التي لها نفس // apns_collapse_id تحل محل بعضها البعض على الجهاز. "apns_trim_content": 1 // اختياري. (0|1) يقص سلاسل المحتوى الزائدة بنقاط حذف. }] }}معلمات Android
Anchor link to{ "request": { "application": "12345-67891", // مطلوب. رمز تطبيق Pushwoosh "auth": "yxoPUlwqm…………pIyEX4H", // مطلوب. رمز الوصول إلى API من لوحة تحكم Pushwoosh "notifications": [{ "android_header": { // اختياري. رأس إشعار Android. "en": "header" }, "android_content": { // اختياري. محتوى إشعار Android. "en": "content" }, "android_root_params": { // اختياري. كائن مفتاح-قيمة مخصص. "key": "value", // معلمات المستوى الجذر لمستلمي حمولة android. "CancelID": 12345678, // اختياري. يلغي إشعار الدفع بالمعرف "voip": true, // معلمة VoIP مطلوبة. المعلمة مطلوبة لإرسال إشعارات دفع VoIP. "callerName": "callerName", // معلمة VoIP اختيارية. اسم المتصل. إذا لم يتم تحديده، يتم عرض "متصل غير معروف". "video": true, // معلمة VoIP اختيارية. يشير إلى ما إذا كانت مكالمات الفيديو مدعومة. }, // معرف الرسالة المحدد (احصل على المعرف من سجل الرسائل) "android_sound": "soundfile", // اختياري. بدون امتداد ملف. إذا ترك فارغًا، // سيصدر الجهاز صوت نظام افتراضي. "android_sound_off": true, // اختياري. تمكين/تعطيل الصوت المحدد بواسطة حقل "android_sound" "android_icon": "icon.png", // اختياري. "android_custom_icon": "URL.png", // اختياري. عنوان URL كامل لملف الصورة. "android_banner": "URL.png", // اختياري. عنوان URL كامل لملف الصورة. "android_badges": 5, // اختياري. رقم شارة أيقونة تطبيق Android. // استخدم "+n" أو "-n" لزيادة/تقليل قيمة الشارة بمقدار n. "android_gcm_ttl": 3600, // اختياري. معلمة مدة البقاء — أقصى عمر للرسالة بالثواني. "android_vibration": 0, // اختياري. اهتزاز قسري لنظام Android للدفعات ذات الأولوية العالية. "android_led": "#rrggbb", // اختياري. لون LED سداسي عشري، سيقوم الجهاز بأفضل تقريب له. "android_priority": -1, // اختياري. يضبط معلمة "importance" للأجهزة التي تعمل بنظام // Android 8.0 والإصدارات الأحدث، بالإضافة إلى معلمة "priority" // للأجهزة التي تعمل بنظام Android 7.1 والإصدارات الأقدم. يحدد // مستوى المقاطعة لقناة إشعار أو إشعار // معين. القيم الصالحة هي -2، -1، 0، 1، 2. "android_delivery_priority": "normal", // اختياري. "normal" أو "high". // يُمكّن تسليم الإشعار عندما يكون // الجهاز في وضع توفير الطاقة. "android_ibc": "#RRGGBB", // اختياري. لون خلفية الأيقونة على Lollipop، #RRGGBB، // #AARRGGBB، "red"، "black"، "yellow"، إلخ. "android_silent": 1, // اختياري. 0 أو 1. تمكين الإشعار الصامت. // تجاهل الصوت والمحتوى "android_group_id": "123", // اختياري. معرف لتجميع الإشعارات ذات الصلة. الرسائل التي لها // نفس معرف السلسلة سيتم تجميعها في // مركز الإشعارات. "android_collapse_key": "promo" // اختياري. مفتاح طي FCM. الإشعارات التي لها نفس // مفتاح الطي تحل محل بعضها البعض أثناء عدم اتصال الجهاز بالإنترنت. }] }}معلمات Huawei
{ "request": { "application": "12345-67891", // مطلوب. رمز تطبيق Pushwoosh "auth": "yxoPUlwqm…………pIyEX4H", // مطلوب. رمز الوصول إلى API من لوحة تحكم Pushwoosh "notifications": [{ "huawei_android_header": { // اختياري. كائن أو سلسلة نصية. عنوان الإشعار "en": "header" }, "huawei_android_content": { // اختياري. كائن أو سلسلة نصية. محتوى الإشعار "en": "content" }, "huawei_android_badges": true, // اختياري. "huawei_android_silent": 0, // اختياري. 0 أو 1. تمكين الإشعار الصامت. // تجاهل الصوت والمحتوى "huawei_android_icon": "URL.png", // اختياري. "huawei_android_led": "#FF0011", // اختياري. لون LED سداسي عشري، سيقوم الجهاز بأفضل تقريب له "huawei_android_vibration": 1, // اختياري. اهتزاز قسري من Huawei للدفعات ذات الأولوية العالية "huawei_android_sound": "sound.wav", // اختياري. إذا ترك فارغًا، سيصدر الجهاز // صوت نظام افتراضي "huawei_android_sound_off": true, // اختياري. تمكين/تعطيل الصوت المحدد بواسطة // حقل "huawei_android_sound" "huawei_android_custom_icon": "URL.png", // اختياري "huawei_android_gcm_ttl": 2400, // اختياري. معلمة مدة البقاء - أقصى // عمر للرسالة بالثواني "huawei_android_banner": "URL.png", // اختياري. عنوان URL للمسار الكامل لملف الصورة "huawei_android_root_params": { // اختياري. كائن مفتاح-قيمة مخصص. "key": "value" // معلمات المستوى الجذر لمستلمي حمولة Huawei. }, "huawei_android_priority": 0, // اختياري. القيم الصالحة: -2، -1، 0، 1، 2 "huawei_android_ibc": "#0011AA", // اختياري. لون خلفية الأيقونة على Lollipop "huawei_android_lockscreen": 1, // اختياري "huawei_android_delivery_priority": "normal", // اختياري. "normal" أو "high". يُمكّن تسليم الإشعار // في وضع توفير الطاقة "huawei_android_group_id": "group_id" // اختياري. معرف لتجميع الإشعارات ذات الصلة }] }}معلمات Safari
Anchor link to{ "request": { "application": "12345-67891", // مطلوب. رمز تطبيق Pushwoosh "auth": "yxoPUlwqm…………pIyEX4H", // مطلوب. رمز الوصول إلى API من لوحة تحكم Pushwoosh "notifications": [{ "safari_url_args": [ // مطلوب، ولكن قد تكون القيمة فارغة "firstArgument", "secondArgument" ], "safari_title": { // اختياري. كائن أو سلسلة نصية. عنوان الإشعار. "en": "content" }, "safari_content": { // اختياري. كائن أو سلسلة نصية. محتوى الإشعار. "en": "content" }, "safari_action": "Click here", // اختياري. "safari_ttl": 3600 // اختياري. معلمة مدة البقاء — أقصى // عمر للرسالة بالثواني. }] }}معلمات Chrome
Anchor link to{ "request": { "application": "12345-67891", // مطلوب. رمز تطبيق Pushwoosh "auth": "yxoPUlwqm…………pIyEX4H", // مطلوب. رمز الوصول إلى API من لوحة تحكم Pushwoosh "notifications": [{ "chrome_title": { // اختياري. كائن أو سلسلة نصية. يمكنك تحديد رأس "en": "title" // الرسالة في هذه المعلمة. }, "chrome_content": { // اختياري. كائن أو سلسلة نصية. يمكنك تحديد محتوى "en": "content" // الرسالة في هذه المعلمة. }, "chrome_icon": "URL.png", // اختياري. عنوان URL كامل للأيقونة أو مسار ملف موارد الامتداد "chrome_gcm_ttl": 3600, // اختياري. معلمة مدة البقاء – أقصى عمر للرسالة بالثواني. "chrome_duration": 20, // اختياري. 50 ثانية كحد أقصى. يغير وقت عرض دفعة chrome. // اضبط على 0 لعرض الدفعة حتى يتفاعل المستخدم معها. "chrome_image": "image_URL", // اختياري. عنوان URL لصورة كبيرة. "chrome_root_params": { // اختياري. تعيين معلمات خاصة بالرسائل المرسلة إلى Chrome. "key": "value" }, "chrome_button_text1": "text1", // اختياري "chrome_button_url1": "button1_URL", // اختياري. يتم تجاهله إذا لم يتم تعيين chrome_button_text1. "chrome_button_text2": "text2", // اختياري "chrome_button_url2": "button2_url" // اختياري. يتم تجاهله إذا لم يتم تعيين chrome_button_text2. }] }}معلمات Firefox
Anchor link to{ "request": { "application": "12345-67891", // مطلوب. رمز تطبيق Pushwoosh "auth": "yxoPUlwqm…………pIyEX4H", // مطلوب. رمز الوصول إلى API من لوحة تحكم Pushwoosh "notifications": [{ "firefox_title": { // اختياري. كائن أو سلسلة نصية. يمكنك تحديد رأس الرسالة هنا. "en": "title" }, "firefox_content": { // اختياري. كائن أو سلسلة نصية. يمكنك تحديد محتوى الرسالة هنا. "en": "content" }, "firefox_icon": "URL.png", // اختياري. عنوان URL للمسار الكامل للأيقونة أو المسار إلى // الملف في موارد الامتداد. "firefox_root_params": { // اختياري. تعيين معلمات خاصة بالرسائل المرسلة إلى Firefox. "key": "value" } }] }}معلمات Amazon
Anchor link to{ "request": { "application": "12345-67891", // مطلوب. رمز تطبيق Pushwoosh "auth": "yxoPUlwqm…………pIyEX4H", // مطلوب. رمز الوصول إلى API من لوحة تحكم Pushwoosh "notifications": [{ "adm_header": { // اختياري. كائن أو سلسلة نصية. يمكنك تحديد رأس الرسالة هنا. "en": "header" }, "adm_content": { // اختياري. كائن أو سلسلة نصية. يمكنك تحديد محتوى الرسالة هنا. "en": "content" }, "adm_root_params": { // اختياري. كائن مفتاح-قيمة مخصص "key": "value" }, "adm_sound": "push.mp3", // اختياري. "adm_sound_off": true, // اختياري. تمكين/تعطيل الصوت المحدد بواسطة حقل "adm_sound" "adm_icon": "icon.png", // اختياري. عنوان URL كامل للأيقونة. "adm_custom_icon": "URL.png", // اختياري. "adm_banner": "URL.png", // اختياري. "adm_ttl": 3600, // اختياري. معلمة مدة البقاء — أقصى عمر للرسالة // بالثواني. "adm_priority": -1 // اختياري. أولوية الدفعة في درج دفعات Amazon، // القيم الصالحة هي -2، -1، 0، 1 و 2. }] }}معلمات Mac OS X
Anchor link to{ "request": { "application": "12345-67891", // مطلوب. رمز تطبيق Pushwoosh "auth": "yxoPUlwqm…………pIyEX4H", // مطلوب. رمز الوصول إلى API من لوحة تحكم Pushwoosh "notifications": [{ "mac_title": { // اختياري. كائن أو سلسلة نصية. يضيف عنوانًا لإشعار الدفع. "en": "title" }, "mac_subtitle": { // اختياري. يضيف عنوانًا فرعيًا لإشعار الدفع. "en": "subtitle" }, "mac_content": { // اختياري. يضيف محتوى لإشعار الدفع. "en": "content" }, "mac_badges": 3, // اختياري. "mac_sound": "sound.caf", // اختياري. "mac_sound_off": true, // اختياري. تمكين/تعطيل الصوت المحدد بواسطة حقل "mac_sound" "mac_root_params": { // اختياري. "content-available": 1 }, "mac_ttl": 3600 // اختياري. معلمة مدة البقاء — أقصى عمر للرسالة بالثواني. }] }}معلمات Windows
Anchor link to{ "request": { "application": "12345-67891", // مطلوب. رمز تطبيق Pushwoosh "auth": "yxoPUlwqm…………pIyEX4H", // مطلوب. رمز الوصول إلى API من لوحة تحكم Pushwoosh "notifications": [{ "wns_content": { // مطلوب. محتوى (XML أو خام) الإشعار المشفر بـ base64 الخاص بـ MIME // في شكل كائن أو سلسلة نصية "en": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48YmFkZ2UgdmFsdWU9ImF2YWlsYWJsZSIvPg==", "de": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48YmFkZ2UgdmFsdWU9Im5ld01lc3NhZ2UiLz4=" }, "wns_type": "Badge", // اختياري. 'Tile' | 'Toast' | 'Badge' | 'Raw' "wns_tag": "myTag", // اختياري. يستخدم في سياسة استبدال المربعات. // سلسلة أبجدية رقمية لا تزيد عن 16 حرفًا. "wns_cache": 1, // اختياري. (1|0) يترجم إلى قيمة X-WNS-Cache-Policy. "wns_ttl": 600 // اختياري. وقت انتهاء صلاحية الإشعار بالثواني. }] }}الاستجابة:
| رمز حالة HTTP | status_code | الوصف |
|---|---|---|
| 200 | 200 | تم إنشاء الرسالة بنجاح |
| 200 | 210 | خطأ في الوسيطة. انظر status_message لمزيد من المعلومات |
| 400 | N/A | سلسلة طلب غير صالحة |
| 500 | 500 | خطأ داخلي |
تتبع رسائل API
Anchor link toلأغراض موازنة التحميل، لا نقوم بتخزين الرسائل المرسلة عبر API مع معلمة “devices” التي تحتوي على أقل من 10 أجهزة في مصفوفة. ولهذا السبب، لن يتم عرض هذه الرسائل في سجل الرسائل الخاص بك.
لرؤية تقارير الدفع أثناء مرحلة الاختبار، استخدم تتبع رسائل API. يتيح لك تشغيل هذا الخيار تجاوز هذا الحد لمدة ساعة واحدة وحفظ هذه الدفعات في سجل الرسائل. يتم إيقاف تشغيل تتبع رسائل API تلقائيًا بعد ساعة واحدة.
يمكن تنشيط تتبع رسائل API على صفحة سجل الرسائل بالنقر فوق بدء تتبع رسائل API في الزاوية اليمنى العليا.
شروط العلامة
Anchor link toكل شرط علامة هو مصفوفة مثل [tagName, operator, operand] حيث
- tagName: اسم العلامة
- operator: “EQ” | “IN” | “NOTEQ” | “NOTIN” | “LTE” | “GTE” | “BETWEEN” | “NOTSET” | “ANY”
- operand: سلسلة نصية | عدد صحيح | مصفوفة | تاريخ
وصف العامل
Anchor link to- EQ: قيمة العلامة تساوي المعامل؛
- IN: قيمة العلامة تتقاطع مع المعامل (يجب أن يكون المعامل دائمًا مصفوفة)؛
- NOTEQ: قيمة العلامة لا تساوي المعامل؛
- NOTIN: قيمة العلامة لا تتقاطع مع المعامل (يجب أن يكون المعامل دائمًا مصفوفة)؛
- GTE: قيمة العلامة أكبر من أو تساوي المعامل؛
- LTE: قيمة العلامة أقل من أو تساوي المعامل؛
- BETWEEN: قيمة العلامة أكبر من أو تساوي قيمة المعامل الدنيا ولكنها أقل من أو تساوي قيمة المعامل القصوى (يجب أن يكون المعامل دائمًا مصفوفة)؛
- NOTSET: العلامة غير معينة. لا يتم النظر في المعامل؛
- ANY: العلامة لها أي قيمة. لا يتم النظر في المعامل.
علامات السلسلة النصية
Anchor link toالعوامل الصالحة: EQ, IN, NOTEQ, NOTIN, NOTSET, ANY
المعاملات الصالحة:
- EQ, NOTEQ: يجب أن يكون المعامل سلسلة نصية؛
- IN, NOTIN: يجب أن يكون المعامل مصفوفة من السلاسل النصية مثل
["value 1", "value 2", "value N"]؛ - NOTSET: العلامة غير معينة. لا يتم النظر في المعامل؛
- ANY: العلامة لها أي قيمة. لا يتم النظر في المعامل.
علامات الأعداد الصحيحة
Anchor link toالعوامل الصالحة: EQ, IN, NOTEQ, NOTIN, BETWEEN, GTE, LTE, NOTSET, ANY
المعاملات الصالحة:
- EQ, NOTEQ, GTE, LTE: يجب أن يكون المعامل عددًا صحيحًا؛
- IN, NOTIN: يجب أن يكون المعامل مصفوفة من الأعداد الصحيحة مثل
[value 1, value 2, value N]؛ - BETWEEN: يجب أن يكون المعامل مصفوفة من الأعداد الصحيحة مثل
[min_value, max_value]؛ - NOTSET: العلامة غير معينة. لا يتم النظر في المعامل؛
- ANY: العلامة لها أي قيمة. لا يتم النظر في المعامل.
علامات التاريخ
Anchor link toالعوامل الصالحة: EQ, IN, NOTEQ, NOTIN, BETWEEN, GTE, LTE, NOTSET, ANY
المعاملات الصالحة:
"YYYY-MM-DD 00:00"(سلسلة نصية)- الطابع الزمني لـ unix
1234567890(عدد صحيح) "N days ago"(سلسلة نصية) للعوامل EQ, BETWEEN, GTE, LTE
علامات منطقية (Boolean)
Anchor link toالعوامل الصالحة: EQ, NOTSET, ANY
المعاملات الصالحة: 0, 1, true, false
علامات القائمة
Anchor link toالعوامل الصالحة: IN, NOTIN, NOTSET, ANY
المعاملات الصالحة: يجب أن يكون المعامل مصفوفة من السلاسل النصية مثل ["value 1", "value 2", "value N"].
مقتطفات /createMessage
Anchor link toنماذج طلبات /createMessage:
#!/bin/bash
#Usageif [ ! -n "$1" ] || [ ! -n "$2" ]then echo "`basename $0` usage: api_token appid message"; exit 1;fi;MESSAGE="$3";if [ -z "$3" ]thenMESSAGE='One push to rule them all!'fi;
echo -e "Response:"curl --data-binary "{\"request\": {\"application\":\"$2\", \"auth\":\"$1\", \"notifications\": [{ \"send_date\": \"now\", \"content\": \"$MESSAGE\" }] }}" \-H "Content-type: application/json" \"https://api.pushwoosh.com/json/1.3/createMessage"echo "";exit 0;<?phpdefine('PW_AUTH', 'API TOKEN');define('PW_APPLICATION', 'APPLICATION CODE');define('PW_DEBUG', true);
function pwCall($method, $data) { $url = 'https://api.pushwoosh.com/json/1.3/' . $method; $request = json_encode(['request' => $data]);
$ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_ENCODING, 'gzip, deflate'); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
$response = curl_exec($ch); $info = curl_getinfo($ch); curl_close($ch);
if (defined('PW_DEBUG') && PW_DEBUG) { print "[PW] request: $request"; print "[PW] response: $response"; print '[PW] info: ' . print_r($info, true); }}
pwCall('createMessage', array( 'application' => PW_APPLICATION, 'auth' => PW_AUTH, 'notifications' => array( array( 'send_date' => 'now', 'content' => 'test', 'data' => array('custom' => 'json data'), 'link' => 'https://pushwoosh.com/' ) ) ));-module(pushwoosh).-export([run/0, stop/0, sendMessage/1]).%% sendMessage argument: message text %%
%% Authentication & App_id %%-define(PW_AUTH, "YOUR_AUTH_TOKEN").-define(PW_APPLICATION, "YOUR_PUSHWOOSH_APP_CODE").
%% KickStart %%run() -> application:start(unicode), application:start(crypto), application:start(public_key), application:start(ssl), application:start(inets), %% HTTP Client verbosity options flase, verbose, debug httpc:set_options([{verbose, false}]).stop() -> application:stop(ssl), application:stop(public_key), application:stop(crypto), application:stop(inets).%% JSON Wars !encode(S) -> encode(S, [$"]).encode([], Acc) -> lists:reverse([$" | Acc]);encode([C | Cs], Acc) -> Hex = lists:flatten(io_lib:format("~4.16.0b", [C])), encode(Cs, lists:reverse(Hex) ++ "u\" ++ Acc).
sendMessage(Message_text) -> %% URL to JSON API 1.3 Url = "https://api.pushwoosh.com/json/1.3/createMessage", EncodedMessage = encode(Message_text), {ok, Response} = httpc:request( %%Method post, %%Request {Url, [{"User-Agent", "Erlang exemple"}], "application/json; charset=UTF-8", "{\"request\":{ \"application\": \""?PW_APPLICATION"\", \"auth\": \""?PW_AUTH"\", \"notifications\": [{ \"send_date\": \"now\", \"content\": "++EncodedMessage++" }]}}"}, %%HTTP options [{ssl,[{verify, verify_none}]}, {version, "HTTP/1.0"}], %%Options []), io:format("And received ~p", [Response]).class PushNotification
#- PushWoosh API Documentation https://www.pushwoosh.com/programming-push-notification/pushwoosh-push-notification-remote-api/ #- Two methods here: # - PushNotification.new.notify_all(message) Notifies all with the same option # - PushNotification.new.notify_devices(notification_options = {}) Notifies specific devices with custom options
include HTTParty #Make sure to have the HTTParty gem declared in your gemfile https://github.com/jnunemaker/httparty default_params :output => 'json' format :json
def initialize #- Change to your settings @auth = {:application => "00000-00000",:auth => "auth_token"} end
# PushNotification.new.notify_all("This is a test notification to all devices") def notify_all(message) notify_devices({:content => message}) end
# PushNotification.new.notify_device({ # :content => "TEST", # :data => {:custom_data => value}, # :devices => array_of_tokens #}) def notify_devices(notification_options = {}) #- Default options, uncomment :data or :devices if needed default_notification_options = { # YYYY-MM-DD HH:mm OR 'now' :send_date => "now", # Object( language1: 'content1', language2: 'content2' ) OR string :content => { :fr => "Test", :en => "Test" }, # JSON string or JSON object "custom": "json data" #:data => { # :custom_data => value #}, # omit this field (push notification will be delivered to all the devices for the application), or provide the list of devices IDs #:devices => {} }
#- Merging with specific options final_notification_options = default_notification_options.merge(notification_options)
#- Constructing the final call options = @auth.merge({:notifications => [final_notification_options]}) options = {:request => options} #- Executing the POST API Call with HTTPARTY - :body => options.to_json allows us to send the json as an object instead of a string response = self.class.post("https://api.pushwoosh.com/json/1.3/createMessage", :body => options.to_json,:headers => { 'Content-Type' => 'application/json' }) endend// Uses JSON classes from https://json.org/java/
package com.arellomobile;
import org.json.*;import java.io.*;import java.net.*;
public class SendPushNotificationSample{ public static final String PUSHWOOSH_SERVICE_BASE_URL = "https://api.pushwoosh.com/json/1.3/"; private static final String AUTH_TOKEN = "YOUR_AUTH_TOKEN"; private static final String APPLICATION_CODE = "PW_APPLICATION_CODE";
public static void main(String[] args) throws JSONException, MalformedURLException { String method = "createMessage"; URL url = new URL(PUSHWOOSH_SERVICE_BASE_URL + method);
JSONArray notificationsArray = new JSONArray() .put(new JSONObject().put("send_date", "now") .put("content", "test") .put("link", "https://pushwoosh.com/"));
JSONObject requestObject = new JSONObject() .put("application", APPLICATION_CODE) .put("auth", AUTH_TOKEN) .put("notifications", notificationsArray);
JSONObject mainRequest = new JSONObject().put("request", requestObject); JSONObject response = SendServerRequest.sendJSONRequest(url, mainRequest.toString());
System.out.println("Response is: " + response); }}
class SendServerRequest{ static JSONObject sendJSONRequest(URL url, String request) { HttpURLConnection connection = null; try { connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); connection.setRequestProperty("Content-Type", "application/json"); connection.setDoInput(true); connection.setDoOutput(true);
DataOutputStream writer = new DataOutputStream(connection.getOutputStream()); writer.write(request.getBytes("UTF-8")); writer.flush(); writer.close();
return parseResponse(connection); } catch (Exception e) { System.out.println("An error occurred: " + e.getMessage()); return null; } finally { if (connection != null) { connection.disconnect(); } } }
static JSONObject parseResponse(HttpURLConnection connection) throws IOException, JSONException { String line; BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); StringBuilder response = new StringBuilder();
while ((line = reader.readLine()) != null) { response.append(line).append(''); } reader.close();
return new JSONObject(response.toString()); }}import json
PW_AUTH = 'API TOKEN'PW_APPLICATION_CODE = 'APPLICATION CODE'
try: # For Python 3.0 and later from urllib.request import urlopen from urllib.request import Requestexcept ImportError: # Fall back to Python 2's urllib2 from urllib2 import urlopen from urllib2 import Request
def pw_call(method, data): url = 'https://api.pushwoosh.com/json/1.3/' + method data = json.dumps({'request': data}) req = Request(url, data.encode('UTF-8'), {'Content-Type': 'application/json'}) try: f = urlopen(req) response = f.read() f.close() print('Pushwoosh response: ' + str(response)) except Exception as e: print ('Request error: ' + str(e))
if __name__ == '__main__': pw_call('createMessage', { 'auth': PW_AUTH, 'application': PW_APPLICATION_CODE, 'notifications': [ { 'send_date': 'now', 'content': 'test', 'data': {"custom": "json data"}, 'link': 'https://pushwoosh.com' } ] } )using System;using System.IO;using System.Net;using Newtonsoft.Json.Linq;
namespace WebApplication1{ public partial class Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string pwAuth = "YOUR_AUTH_TOKEN"; string pwApplication = "PW_APPLICATION_CODE"; JObject json = new JObject( new JProperty("application", pwApplication), new JProperty("auth", pwAuth), new JProperty("notifications", new JArray( new JObject( new JProperty("send_date", "now"), new JProperty("content", "test"), new JProperty("wp_type", "Toast"), new JProperty("wp_count", 3), new JProperty("data", new JObject( new JProperty("custom", "json data"))), new JProperty("link", "https://pushwoosh.com/"), new JProperty("conditions", new JArray( (object)new JArray("Color", "EQ", "black"))))))); PWCall("createMessage", json); } private void PWCall(string action, JObject data) { Uri url = new Uri("https://api.pushwoosh.com/json/1.3/" + action); JObject json = new JObject(new JProperty("request", data)); DoPostRequest(url, json); } private void DoPostRequest(Uri url, JObject data) { HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url); req.ContentType = "text/json"; req.Method = "POST"; using (var streamWriter = new StreamWriter(req.GetRequestStream())) { streamWriter.Write(data.ToString()); } HttpWebResponse httpResponse; try { httpResponse = (HttpWebResponse)req.GetResponse(); } catch (Exception exc) { throw new Exception(string.Format("Problem with {0}, {1}", url, exc.Message)); } using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { var responseText = streamReader.ReadToEnd(); Page.Response.Write(responseText); } } }}package main
import( "fmt" "encoding/json" "net/http" "bytes" "io/ioutil")
const ( PW_APPLICATION = "APPLICATION CODE" PW_AUTH = "API TOKEN" PW_ENDPOINT = "https://api.pushwoosh.com/json/1.3/")
func pwCall(method string, data []byte) (bool) { url := PW_ENDPOINT + method request, err := http.NewRequest("POST", url, bytes.NewBuffer(data)) request.Header.Set("Content-Type", "application/json")
client := http.Client{} response, err := client.Do(request) if err != nil { fmt.Println("Error occur: " + err.Error()) return false } defer response.Body.Close()
fmt.Println("Response Status: ", response.Status) if (response.StatusCode == 200) { body, _ := ioutil.ReadAll(response.Body) fmt.Println("Response Body: ", string(body)) return true } return false}
func main() { requestData := map[string]interface{}{ "request": map[string]interface{} { "auth": PW_AUTH, "application": PW_APPLICATION, "notifications": []interface{}{ map[string]interface{} { "send_date": "now", "content": "test", "link": "https://pushwoosh.com", }, }, }, } jsonRequest, _ := json.Marshal(requestData) requestString := string(jsonRequest) fmt.Println("Request body: " + requestString)
pwCall("createMessage", jsonRequest)}$.ajax({ type: "POST", url: "https://api.pushwoosh.com/json/1.3/createMessage", data: JSON.stringify({ "request": { "application": "APPLICATION CODE", "auth": "API TOKEN", "notifications": [{ "send_date": "now", "ignore_user_timezone": true, "content": "Hello world!" }] } }), dataType: "json"}).done(function(data) { console.log(data);});deleteMessage
Anchor link toPOST https://api.pushwoosh.com/json/1.3/deleteMessage
تحذف رسالة، سواء كانت لا تزال مجدولة أو تم إرسالها بالفعل. بالنسبة للرسالة المجدولة، يؤدي هذا أيضًا إلى إزالتها من سجل الرسائل (Message History) على الفور — بالنسبة للرسالة التي تم إرسالها بالفعل، انظر التحذير أدناه.
لا تتأثر عمليات الإرسال اللاحقة التي تم إنشاؤها من الرسالة باستخدام إعادة الإرسال إلى غير الفاتحين — احذف أو ألغِ كل منها على حدة.
استخدم /cancelMessage بدلاً من ذلك إذا كنت تريد إيقاف الإرسال ولكن الاحتفاظ بالرسالة في سجل الرسائل بالحالة canceled.
نص الطلب
Anchor link to| الاسم | النوع | الوصف |
|---|---|---|
| auth* | string | رمز الوصول إلى API من لوحة تحكم Pushwoosh. |
| message* | string | رمز الرسالة الذي تم الحصول عليه في طلب /createMessage. |
{ "status_code": 200, "status_message": "OK"}{ "request":{ "auth": "yxoPUlwqm…………pIyEX4H", // مطلوب. رمز الوصول إلى API من لوحة تحكم Pushwoosh "message": "xxxx-xxxxxxx-xxxxxx" // مطلوب. رمز الرسالة الذي تم الحصول عليه في /createMessage }}رموز الحالة:
| رمز حالة HTTP | status_code | الوصف |
|---|---|---|
| 200 | 200 | تم حذف الرسالة بنجاح |
| 200 | 210 | خطأ في الوسيطة، على سبيل المثال، لا تزال الرسالة في حالة creating. انظر status_message لمزيد من المعلومات |
| 400 | N/A | سلسلة طلب غير صالحة |
| 500 | 500 | خطأ داخلي |
<?php// see https://gomoob.github.io/php-pushwoosh/delete-message.htmluse Gomoob\Pushwoosh\Model\Request\DeleteMessageRequest;
// creates request instance$request = DeleteMessageRequest::create()->setMessage('MESSAGE_CODE');
// call '/deleteMessage' Web Service$response = $pushwoosh->deleteMessage($request);
if($response->isOk()) { print 'Great, my message has been deleted !';} else { print 'Oups, the deletion failed :-('; print 'Status code : ' . $response->getStatusCode(); print 'Status message : ' . $response->getStatusMessage();}getMessageDetails
Anchor link toPOST https://api.pushwoosh.com/json/1.3/getMessageDetails
يسترجع تفاصيل الرسالة.
نص الطلب
Anchor link to| الاسم | النوع | الوصف |
|---|---|---|
| auth* | string | رمز الوصول إلى API من لوحة تحكم Pushwoosh. |
| message* | string | رمز الرسالة أو معرف الرسالة. |
{ "status_code": 200, "status_message": "OK", "response": { "message": { "id": 2068991743, "created": "2016-09-14 17:19:42", "send_date": "2016-09-14 17:19:41", "status": "done", "content": { "en": "Hello {Name|CapitalizeFirst|friend}! 🚀" }, "platforms": "[1]", "ignore_user_timezone": "1", "code": "XXXX-92B4C3C5-A7F5EF70", "data": { "key": "value" } } }}{ "request":{ "auth": "yxoPUlwqm…………pIyEX4H", // مطلوب. رمز الوصول إلى API من لوحة تحكم Pushwoosh "message": "xxxx-xxxxxxx-xxxxxx" // مطلوب. رمز الرسالة أو معرف الرسالة }}createTargetedMessage مهمل
Anchor link toPOST https://api.pushwoosh.com/json/1.3/createTargetedMessage
تُنشئ إشعار دفع مستهدف جديد.
نص الطلب
Anchor link to| الاسم | النوع | الوصف |
|---|---|---|
| auth* | string | رمز الوصول إلى API من لوحة تحكم Pushwoosh. |
| devices_filter* | string | انظر الملاحظة أدناه. |
| send_date* | string | YYYY-MM-DD HH:mm أو ‘now’. |
| ignore_user_timezone | boolean | إذا تم تجاهله، يكون UTC-0 هو الافتراضي لـ “send_date”. |
| timezone | string | إذا تم تجاهله، يكون UTC-0 هو الافتراضي لـ “send_date”. |
| campaign | string | رمز حملة تريد تعيين رسالة الدفع هذه إليها. |
| content* | string | محتوى الإشعار. انظر مثال الطلب للحصول على التفاصيل. |
| transactionId | string | معرف رسالة فريد لمنع تكرار الرسائل في حالة مشاكل الشبكة. يتم تخزينه على جانب Pushwoosh لمدة 5 دقائق. |
| link | string | رابط يتم فتحه بمجرد أن يفتح المستخدم رسالة دفع. |
| minimize_link | integer | 0 - عدم التصغير، 2 - bit.ly. الافتراضي = 2. |
| data | object | سلسلة JSON أو كائن JSON. سيتم تمريره كمعلمة “u” في الحمولة (محولة إلى سلسلة JSON). |
| preset | string | رمز الإعداد المسبق. |
| send_rate | integer | التقييد. القيم الصالحة هي من 100 إلى 1000 دفعة في الثانية. |
| inbox_date | string | حدد متى تتم إزالة رسالة من صندوق الوارد. |
| inbox_image | string | عنوان URL للصورة التي سيتم عرضها بجوار الرسالة في صندوق الوارد. |
{ "status_code": 200, "status_message": "OK", "response": { "messageCode": "97B0-C7473871-2FBDFDC6" }}The request cannot be fulfilled due to bad syntax.المزيد من أمثلة الاستجابة:
{ "status_code": 210, "status_message": "Errors occurred while compiling filter", "response": { "errors": [{ "message": "Invalid tag set specification. \")\" expected.", "type": "syntax" }] }}{ "status_code": 210, "status_message": "Errors occurred while compiling filter", "response": { "errors": [{ "message": "Application \"11111-11111\" not found", "type": "semantic", "near": "\"11111-11111\"" }] }}{ "status_code": 210, "status_message": "Errors occurred while compiling filter", "response": { "errors": [{ "message": "Invalid character \"/\" at 1:19", "type": "lexical" }] }}{ "request": { "auth": "yxoPUlwqm…………pIyEX4H", // مطلوب. رمز الوصول إلى API من لوحة تحكم Pushwoosh "devices_filter": "A(\"XXXXX-XXXXX\") * T(\"City\", EQ, \"Name\")", // مطلوب. بناء الجملة مشروح أدناه "send_date": "now", // اختياري. YYYY-MM-DD HH:mm أو 'now' "ignore_user_timezone": true, // اختياري. "timezone": "America/New_York", // اختياري. إذا تم تجاهله، يكون UTC-0 هو الافتراضي لـ "send_date". // مزيد من المعلومات https://php.net/manual/timezones.php. "campaign": "CAMPAIGN_CODE", // اختياري. رمز الحملة الذي تريد تعيين رسالة الدفع هذه إليه. "content": { // اختياري. كائن أو سلسلة نصية. استخدم "wns_content" بدلاً من ذلك لنظام Windows. "en": "English", "de": "Deutsch" }, "transactionId": "unique UUID", // اختياري. معرف رسالة فريد لمنع تكرار الرسائل // في حالة مشاكل الشبكة. يتم تخزينه على جانب // Pushwoosh لمدة 5 دقائق. "rich_media": "XXXXX-XXXXX", // اختياري. انسخ رمز الوسائط الغنية من شريط URL الخاص بـ // صفحة محرر الوسائط الغنية في لوحة تحكم Pushwoosh. "link": "https://google.com", // اختياري. للروابط العميقة أضف "minimize_link": 0 "minimize_link": 0, // اختياري. 0 — عدم التصغير، 2 — bitly. الافتراضي = 2. // تم تعطيل أداة تقصير عناوين URL من Google منذ 30 مارس 2019. // يرجى ملاحظة أن أدوات تقصير الروابط لها قيود // على عدد الاستدعاءات. "data": { // اختياري. سلسلة JSON أو كائن JSON. "key": "value" // سيتم تمريره كمعلمة "u" في الحمولة }, // (محولة إلى سلسلة JSON). "preset": "XXXXX-XXXXX", // اختياري. رمز الإعداد المسبق للدفع من لوحة التحكم الخاصة بك. "send_rate": 100, // اختياري. التقييد. القيم الصالحة هي من 100 إلى 1000 دفعة/ثانية. "dynamic_content_placeholders": { // اختياري. عناصر نائبة للمحتوى الديناميكي بدلاً من علامات الجهاز. "firstname": "John", "lastname": "Doe" },
// لحفظ الرسالة في صندوق الوارد عبر API، استخدم "inbox_date" أو "inbox_image". // يتم حفظ الرسالة عند استخدام أحد هذين المعلمين على الأقل. "inbox_image": "Inbox image URL", // اختياري. الصورة التي سيتم عرضها بجوار الرسالة. "inbox_date": "2017-02-02" // اختياري. حدد متى تتم إزالة رسالة من صندوق الوارد. // ستتم إزالة الرسالة من صندوق الوارد في الساعة 00:00:01 UTC من // التاريخ المحدد، لذا فإن اليوم السابق هو آخر // يوم يمكن للمستخدم رؤية الرسالة في صندوق الوارد الخاص به. // إذا لم يتم تحديده، فإن تاريخ الإزالة الافتراضي هو اليوم // التالي لتاريخ الإرسال. }}{ "request": { "auth": "yxoPUlwqm…………pIyEX4H", // مطلوب. رمز الوصول إلى API من لوحة تحكم Pushwoosh "devices_filter": "FILTER CONDITION", "send_date": "now", // اختياري. YYYY-MM-DD HH:mm أو 'now' "content": { // اختياري. كائن أو سلسلة نصية. "en": "English", // استخدم "wns_content" بدلاً من ذلك لنظام Windows. "de": "Deutsch" }, "ignore_user_timezone": true, // اختياري. "timezone": "America/New_York", // اختياري. إذا تم تجاهله، يكون UTC-0 هو الافتراضي لـ "send_date". // مزيد من المعلومات https://php.net/manual/timezones.php. "campaign": "CAMPAIGN_CODE", // اختياري. رمز الحملة الذي تريد تعيين رسالة الدفع هذه إليه.
// معلمات متعلقة بـ iOS "ios_badges": 5, // اختياري. رقم شارة تطبيق iOS. // استخدم "+n" أو "-n" لزيادة/تقليل قيمة الشارة بمقدار n. "ios_sound": "sound file.wav", // اختياري. اسم ملف الصوت في الحزمة الرئيسية للتطبيق. // إذا ترك فارغًا، فلن يصدر الجهاز أي صوت // عند تلقي دفعة. "ios_sound_off": true, // اختياري. تمكين/تعطيل الصوت المحدد بواسطة حقل "ios_sound". "ios_ttl": 3600, // اختياري. معلمة مدة البقاء — أقصى عمر للرسالة بالثواني. "ios_silent": 1, // اختياري. يُمكّن الإشعارات الصامتة (يتجاهل "sound" و "content"). "ios_category_id": "1", // اختياري. معرف فئة iOS8 من Pushwoosh. "ios_category_custom": "category", // اختياري. فئة APNS مخصصة. "ios_root_params": { // اختياري. معلمات المستوى الجذر لقاموس aps. "aps": { "content-available": "0", // اختياري. اضبط "1" لإرسال دفعة صامتة و "0" لدفعة عادية. "mutable-content": 1 // مطلوب لمرفقات الوسائط في iOS10+. }, "attachment": "YOUR_ATTACHMENT_URL", // عنوان URL لمرفق وسائط iOS10+. "data": {} // اختياري. بيانات مقدمة من المستخدم، بحد أقصى 4 كيلوبايت }, "apns_trim_content": 1, // اختياري. (0|1) يقص سلاسل المحتوى الزائدة بنقاط حذف. "ios_title": { // اختياري. يضيف عنوانًا لإشعار دفع iOS. "en": "title" }, "ios_subtitle": { // اختياري. يضيف عنوانًا فرعيًا لإشعار دفع iOS. "en": "subTitle" }, "ios_content": { // اختياري. يضيف محتوى لإشعار دفع iOS. "en": "content" },
// معلمات متعلقة بـ Android "android_root_params": { // اختياري. كائن مفتاح-قيمة مخصص. "key": "value" // معلمات المستوى الجذر لمستلمي حمولة android. }, "android_sound": "soundfile", // اختياري. بدون امتداد ملف. إذا ترك فارغًا، فلن يصدر الجهاز // أي صوت عند تلقي دفعة. "android_sound_off": true, // اختياري. تمكين/تعطيل الصوت المحدد بواسطة حقل "android_sound" "android_header": { // اختياري. كائن أو سلسلة نصية. رأس إشعار Android. "en": "header" }, "android_content": { // اختياري. كائن أو سلسلة نصية. محتوى إشعار Android. "en": "content" }, "android_icon": "icon.png", "android_custom_icon": "URL.png", // اختياري. عنوان URL للمسار الكامل لملف الصورة. "android_banner": "URL.png", // اختياري. عنوان URL للمسار الكامل لملف الصورة. "android_badges": 5, // اختياري. عدد صحيح. رقم شارة أيقونة تطبيق Android. // استخدم "+n" أو "-n" لزيادة/تقليل قيمة الشارة بمقدار n. "android_gcm_ttl": 3600, // اختياري. معلمة مدة البقاء — أقصى عمر للرسالة بالثواني. "android_vibration": 0, // اختياري. اهتزاز قسري لنظام Android للدفعات ذات الأولوية العالية. "android_led": "#rrggbb", // اختياري. لون LED سداسي عشري، سيقوم الجهاز بأفضل تقريب له. "android_priority": -1, // اختياري. يضبط معلمة "importance" للأجهزة التي تعمل بنظام Android 8.0 // والإصدارات الأحدث، بالإضافة إلى معلمة "priority" للأجهزة // التي تعمل بنظام Android 7.1 والإصدارات الأقدم. يحدد مستوى المقاطعة // لقناة إشعار أو إشعار معين. // القيم الصالحة هي -2، -1، 0، 1، 2. "android_delivery_priority": "normal", // اختياري. "normal" أو "high". يُمكّن تسليم الإشعار // عندما يكون الجهاز في وضع توفير الطاقة. "android_ibc": "#RRGGBB", // اختياري. لون خلفية الأيقونة على Lollipop، #RRGGBB، // #AARRGGBB، "red"، "black"، "yellow"، إلخ. "android_silent": 1, // اختياري. 0 أو 1. تمكين الإشعار الصامت. // تجاهل الصوت والمحتوى
// معلمات متعلقة بـ Amazon "adm_root_params": { // اختياري. كائن مفتاح-قيمة مخصص "key": "value" }, "adm_sound": "push.mp3", "adm_sound_off": true, // اختياري. تمكين/تعطيل الصوت المحدد بواسطة حقل "adm_sound" "adm_header": { "en": "Header" }, "adm_content": { "en": "content" }, "adm_icon": "icon.png", "adm_custom_icon": "URL.png", "adm_banner": "URL.png", "adm_ttl": 3600, // اختياري. معلمة مدة البقاء — أقصى عمر للرسالة // بالثواني. "adm_priority": -1, // اختياري. أولوية الدفعة في درج دفعات Amazon، // القيم الصالحة هي -2، -1، 0، 1 و 2.
// معلمات متعلقة بـ Mac OS X "mac_badges": 3, "mac_sound": "sound.caf", "mac_sound_off": true, "mac_root_params": { "content-available": 1 }, "mac_ttl": 3600, // اختياري. معلمة مدة البقاء — أقصى عمر للرسالة بالثواني. "mac_title": { // اختياري. يضيف عنوانًا لإشعار الدفع. "en": "title" }, "mac_subtitle": { // اختياري. يضيف عنوانًا فرعيًا لإشعار دفع MacOS. "en": "subtitle" }, "mac_content": { // اختياري. يضيف محتوى لإشعار دفع MacOS. "en": "content" },
// معلمات متعلقة بـ Windows "wns_content": { // مطلوب. محتوى (XML أو خام) الإشعار المشفر // بـ base64 الخاص بـ MIME في شكل كائن أو سلسلة نصية "en": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48YmFkZ2UgdmFsdWU9ImF2YWlsYWJsZSIvPg==", "de": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48YmFkZ2UgdmFsdWU9Im5ld01lc3NhZ2UiLz4=" }, "wns_type": "Badge", // 'Tile' | 'Toast' | 'Badge' | 'Raw' "wns_tag": "myTag", // اختياري. يستخدم في سياسة استبدال المربعات. // سلسلة أبجدية رقمية لا تزيد عن 16 حرفًا. "wns_cache": 1, // اختياري. (1|0) يترجم إلى قيمة X-WNS-Cache-Policy. "wns_ttl": 600, // اختياري. وقت انتهاء صلاحية الإشعار بالثواني.
// معلمات متعلقة بـ Safari "safari_title": { // اختياري. كائن أو سلسلة نصية. عنوان الإشعار. "en": "title" }, "safari_content": { // اختياري. كائن أو سلسلة نصية. محتوى الإشعار. "en": "content" }, "safari_action": "Click here", // اختياري. "safari_url_args": [ // مطلوب. ولكن قد تكون القيمة فارغة "firstArgument", "secondArgument" ], "safari_ttl": 3600, // اختياري. معلمة مدة البقاء — أقصى // عمر للرسالة بالثواني.
// معلمات متعلقة بـ Chrome "chrome_title": { // اختياري. يمكنك تحديد رأس الرسالة في هذه المعلمة. "en": "title" }, "chrome_content": { // اختياري. يمكنك تحديد محتوى الرسالة في هذه المعلمة. "en": "content" }, "chrome_icon": "icon_URL", // اختياري. عنوان URL للمسار الكامل للأيقونة أو مسار ملف موارد الامتداد "chrome_gcm_ttl": 3600, // اختياري. معلمة مدة البقاء – أقصى عمر للرسالة بالثواني. "chrome_duration": 20, // اختياري. يغير وقت عرض دفعة chrome. اضبط على 0 لعرض الدفعة // حتى يتفاعل المستخدم معها. "chrome_image": "image_URL", // اختياري. عنوان URL لصورة كبيرة "chrome_root_params": { // اختياري. تعيين معلمات خاصة بالرسائل المرسلة إلى Chrome. "key": "value" }, "chrome_button_text1": "text1", // اختياري. "chrome_button_url1": "button1_URL", // اختياري. يتم تجاهله إذا لم يتم تعيين chrome_button_text1. "chrome_button_text2": "text2", // اختياري. "chrome_button_url2": "button2_url", // اختياري. يتم تجاهله إذا لم يتم تعيين chrome_button_text2.
// معلمات متعلقة بـ Firefox "firefox_title": { // اختياري. كائن أو سلسلة نصية. يمكنك تحديد رأس الرسالة هنا. "en": "title" }, "firefox_content": { // اختياري. كائن أو سلسلة نصية. يمكنك تحديد محتوى الرسالة هنا. "en": "content" }, "firefox_icon": "icon_URL", // اختياري. عنوان URL للمسار الكامل للأيقونة أو المسار // إلى الملف في موارد الامتداد. "firefox_root_params": { // اختياري. تعيين معلمات خاصة بالرسائل المرسلة إلى Firefox. "key": "value" } }}الأساسيات بسيطة جدًا – يتم تنفيذ جميع المرشحات على مجموعات من الكيانات.
المجموعات
Anchor link toيتم تعريف المجموعات على النحو التالي:
1. الأجهزة المشتركة في تطبيق معين (A)؛
2. الأجهزة التي تطابق قيم العلامات المحددة (T) أو قيمة علامة خاصة بالتطبيق (AT)؛\
بناء الجملة
Anchor link toلنجرب بعض العينات وفقًا للقائمة أعلاه.
استهداف مشتركي التطبيق
Anchor link toيحدد المرشح “A” مجموعة من الأجهزة المشتركة في تطبيق معين:
A("XXXXX-XXXXX", ["iOS", "Android", "OsX", "Windows", "Amazon", "Safari", "Chrome", "Firefox"])
حيث
- “XXXXX-XXXXX” – رمز تطبيق Pushwoosh
- [“iOS”, “Android”, …] – مصفوفة من المنصات المستهدفة. إذا تم حذفها، سيتم إرسال الرسالة إلى جميع المنصات المتاحة لهذا التطبيق.
التصفية حسب قيم العلامات
Anchor link toيحدد المرشح “T” مجموعة من الأجهزة التي تم تعيين قيم علامات محددة لها.
T(\"Age\", IN, [17,20])
يحدد مجموعة الأجهزة التي تم تعيين علامة “age” لها على إحدى القيم: 17، 18، 19، 20.
أنواع العلامات والعوامل
Anchor link toالشيء المهم جدًا الذي يجب فهمه هو أن العلامات مشتركة بين التطبيقات، وهذا يمثل أداة قوية جدًا لتقسيم وتصفية المستخدمين المستهدفين دون ربط نفسك بتطبيق معين.
يمكن أن تكون العلامة واحدة من ثلاثة أنواع مختلفة: سلسلة نصية، عدد صحيح، قائمة. يحدد نوع العلامة العوامل التي يمكنك استخدامها لعلامة معينة.
علامات السلسلة النصية
Anchor link toالعوامل القابلة للتطبيق:
- EQ – يستهدف الأجهزة ذات قيمة علامة محددة
- IN – يستهدف الأجهزة ذات أي من قيم العلامات المحددة
- NOTIN – يستهدف الأجهزة التي لا تحتوي على قيم علامات محددة
- NOTEQ – يستهدف الأجهزة ذات قيمة علامة لا تساوي قيمة محددة
- NOTSET – يستهدف الأجهزة التي لا تحتوي على قيمة لعلامة محددة
- ANY – يستهدف الأجهزة ذات أي قيمة معينة لعلامة محددة
أمثلة:
T (\"Age\", EQ, 30) – يصفّي المستخدمين في سن 30
T (\"favorite_color\", IN, [\"red\",\"green\",\"blue\"]) – يصفّي المستخدمين الذين اختاروا الأحمر أو الأخضر أو الأزرق كلونهم المفضل.
T (\"Name", NOTSET, \"\") – يستهدف الأجهزة التي لا تحتوي على قيمة لعلامة الاسم.
يمكنك استخدام قيم رقمية مع علامات السلسلة النصية، ولكن سيتم تحويل هذه القيم إلى سلسلة نصية.
علامات الأعداد الصحيحة
Anchor link toالعوامل القابلة للتطبيق:
- GTE – أكبر من أو يساوي قيمة محددة
- LTE– أقل من أو يساوي قيمة محددة
- EQ – يساوي قيمة محددة
- BETWEEN – بين القيم الدنيا والقصوى المحددة
- IN – أي من القيم المحددة
- NOTIN – لا توجد قيم محددة معينة لجهاز
- NOTEQ – الأجهزة ذات قيمة علامة لا تساوي قيمة محددة
- NOTSET – الأجهزة التي لا تحتوي على قيمة لعلامة محددة
- ANY – الأجهزة ذات أي قيمة معينة لعلامة محددة
أمثلة:
T (\"Level\", EQ, 14) – يصفّي المستخدمين في المستوى 14 فقط.
T (\"Level\", BETWEEN, [1,5) – يصفّي المستخدمين في المستويات 1، 2، 3، 4، و 5.
T (\"Level", GTE, 29) – يستهدف المستخدمين الذين وصلوا إلى المستوى 29 على الأقل.
علامات القائمة
Anchor link toالعوامل القابلة للتطبيق:
- IN – الأجهزة ذات أي من قيم العلامات المحددة
مثال: T("Category", IN, ["breaking_news","business","politics"])
علامات التاريخ
Anchor link toالعوامل القابلة للتطبيق:
- GTE – أكبر من أو يساوي قيمة محددة
- LTE– أقل من أو يساوي قيمة محددة
- EQ – يساوي قيمة محددة
- BETWEEN – بين القيم الدنيا والقصوى المحددة
- NOTEQ – الأجهزة ذات قيمة علامة لا تساوي قيمة محددة
- NOTSET – الأجهزة التي لا تحتوي على قيمة لعلامة محددة
- ANY – الأجهزة ذات أي قيمة معينة لعلامة محددة
أمثلة:
AT("7777D-322A7","Last Application Open", BETWEEN, ["2022-02-28", "2022-03-02"])
AT("7777D-322A7","Last Application Open", GTE, "90 days ago")
العمليات
Anchor link to- “+” – يضم مجموعتين (يساوي OR)
- “*” – يتقاطع مع مجموعتين (يساوي AND)
- “\” – يطرح مجموعة من أخرى (يساوي NOT)
جميع العمليات ترابطية من اليسار. ”+” و ”*” لهما نفس الأولوية. "" لها أولوية أكبر. يمكنك استخدام الأقواس لتحديد أولويات الحسابات.
لاحظ أن عملية "" ليست تبادلية. A("12345-12345") \ A("67890-67890") ليست هي نفسها A("67890-67890") \ A("12345-12345").
getPushHistory مهمل
Anchor link toPOST https://api.pushwoosh.com/json/1.3/getPushHistory
يحصل على سجل الرسائل مع تفاصيل الدفع.
نص الطلب
Anchor link to| الاسم | النوع | الوصف |
|---|---|---|
| auth* | string | رمز الوصول إلى API من لوحة تحكم Pushwoosh. |
| limitMessages | integer | يحد من عدد الرسائل في الاستجابة. القيم الممكنة من 10 إلى 1000. |
| source | string | مصدر سجل الدفع. يمكن أن يكون null أو: “CP”, “API”, “GeoZone”, “RSS”, “AutoPush”, “A/B Test”. |
| searchBy | string | القيم الممكنة للبحث بها. يمكن أن يكون null أو: “notificationID”, “notificationCode”, “applicationCode”, “campaignCode”. |
| value | string | قيمة البحث المحددة وفقًا لحقل “searchBy”. |
| lastNotificationID | string | يستخدم للترقيم. آخر messageId من استدعاء /getPushHistory السابق. انظر التفاصيل أدناه. |
{ "status_code": 200, "status_message": "OK", "response": { "rows": [{ "id": 10191611434, "code": "8071-07AD1171-77238AD1", "createDate": "2020-09-14 12:26:21", "sendDate": "2020-09-14 12:26:21", "content": { "en": "Hello!" }, "url": null, "ios_title": null, "ios_subtitle": null, "ios_root_params": null, "android_header": null, "android_root_params": null, "conditions": null, "conditions_operator": "AND", "filter_code": "E3A64-A5F3C", "filter_conditions": "#In-app Purchase(≠0)", "filter_name": "Purchased something", "geozone": null, "campaignId": "", "campaignName": "", "subscription_segments": null, "open": { "C90C0-0E786": { "IOS": 0 } }, "sent": { "C90C0-0E786": { "IOS": 1 } }, "ctr": { "C90C0-0E786": 0 } }, { "id": 10191609202, "code": "41CA-83F8E0D7-7A63822B", "createDate": "2020-09-14 12:25:55", "sendDate": "2020-09-14 12:25:55", "content": { "en": "Hi!" }, "url": null, "ios_title": null, "ios_subtitle": null, "ios_root_params": null, "android_header": null, "android_root_params": null, "conditions": null, "conditions_operator": "AND", "filter_code": null, "filter_conditions": null, "filter_name": null, "geozone": null, "campaignId": "", "campaignName": "", "subscription_segments": { "2D732-BB981": "News" }, "open": { "C90C0-0E786": { "CHROME": 0, "IOS": 0 } }, "sent": { "C90C0-0E786": { "CHROME": 1, "IOS": 2 } }, "ctr": { "C90C0-0E786": 0 } }] }}{ "request":{ "auth": "yxoPUlwqm…………pIyEX4H", // مطلوب. رمز الوصول إلى API من لوحة تحكم Pushwoosh "source": null, // اختياري. القيم الممكنة هي null, "CP", "API", "GeoZone", // "RSS", "AutoPush", "A/B Test" "searchBy": "applicationCode", // اختياري. القيم الممكنة هي "", "notificationID", // "notificationCode", "applicationCode", "campaignCode" "value": "C8717-703F2", // اختياري. قيمة البحث المحددة وفقًا لحقل "searchBy". "lastNotificationID": 0, // اختياري. يستخدم للترقيم. آخر messageId من // استدعاء /getPushHistory السابق. انظر التفاصيل أدناه. "limitMessages": 1000 // اختياري. قيمة ممكنة من 10 إلى 1000. }}ستعيد هذه الدالة 1000 رسالة من الحساب مرتبة حسب معرف الرسالة. للحصول على الصفحة الثانية، حدد آخر معرف رسالة من الاستجابة السابقة في معلمة lastNotificationId.
أنواع بيانات الاستجابة
Anchor link toid -- int | 0code -- stringcreateDate -- string (date: %Y-%m-%d %H:%M:%S)sendDate -- string (date: %Y-%m-%d %H:%M:%S)content -- array ( dict {lang: value} | list [])title -- array ( dict {lang: value} | list [])subtitle -- array ( dict {lang: value} | list [])url -- stringios_title -- string | array ( dict {lang: value} ) | nullios_subtitle -- string | array ( dict {lang: value} ) | nullios_root_params -- dict (JSON) | nullandroid_header -- string | array ( dict {lang: value} ) | nullandroid_root_params -- dict (JSON) | nullconditions -- list (JSON) | nullconditions_operator -- string | nullfilter_code -- string | nullfilter_name -- string | nullfilter_conditions -- string | nullgeozone -- string | nullcampaignId -- string | ""campaignName -- string | ""subscription_segments (obsolete) -- list (JSON) | nulldata -- dict (JSON) | nullopen -- dict [dict [string: int]] | "" Example: 'open': {'AAAAA-BBBBB': {'IOS': 1, 'ANDROID': 1}}sent -- dict [dict [string: int]] | "" Example: 'sent': {'AAAAA-BBBBB': {'IOS': 10, 'ANDROID': 10}}ctr -- dict [string: int] | "" Example: {'AAAAA-BBBBB': 1}errors -- dict [string: int] | "" Example: {'ANDROID': 1, 'IOS': 1}cancelMessage
Anchor link toPOST https://api.pushwoosh.com/json/1.3/cancelMessage
تلغي إرسال رسالة مجدولة. تظل الرسالة في سجل الرسائل (Message History) بالحالة canceled. كما يتم إلغاء عمليات الإرسال اللاحقة التي تم إنشاؤها منها باستخدام إعادة الإرسال إلى غير الفاتحين.
استخدم /deleteMessage بدلاً من ذلك إذا كنت تريد إزالة الرسالة من سجل الرسائل (انظر التحذير هناك حول الرسائل التي تم إرسالها بالفعل).
نص الطلب
Anchor link to| الاسم | النوع | الوصف |
|---|---|---|
| auth* | string | رمز الوصول إلى API من لوحة تحكم Pushwoosh. |
| message* | string | رمز الرسالة الذي تم الحصول عليه في استجابة /createMessage. |
{ "status_code":200, "status_message":"OK"}{ "request":{ "auth": "yxoPUlwqm…………pIyEX4H", // مطلوب. رمز الوصول إلى API من لوحة تحكم Pushwoosh "message": "xxxx-xxxxxxx-xxxxxx" // مطلوب. رمز الرسالة الذي تم الحصول عليه في استجابة /createMessage }}رموز الحالة:
| رمز حالة HTTP | status_code | الوصف |
|---|---|---|
| 200 | 200 | تم إلغاء الرسالة بنجاح |
| 200 | 210 | خطأ في الوسيطة. انظر status_message لمزيد من المعلومات. |
| 400 | N/A | سلسلة طلب غير صالحة |
| 500 | 500 | خطأ داخلي |