انتقل إلى المحتوى

إشعار

POST https://api.pushwoosh.com/messaging/v2/notify

إنشاء وجدولة رسالة واحدة.

هيكل الطلب

Anchor link to

جسم الطلب هو NotifyRequest مع نوع واحد فقط من نوعين:

  • segment: استهداف شريحة جمهور عن طريق رمز الشريحة، أو تعبير seglang، أو تعبير فلتر منظم.
  • transactional: إرسال إلى قائمة صريحة من hwids، أو معرفات المستخدمين، أو رموز الإشعارات اللحظية، أو أجهزة الاختبار.
الشكل
{
"segment": { ... }, // أو
"transactional": { ... },
"transaction_id": "unique-uuid"
}
الحقلالنوعالوصف
transaction_idstringاختياري. مفتاح Idempotency للطلب — يعمل مع كل من segment و transactional. استدعاء متكرر بنفس transaction_id في غضون 5 دقائق يُرجع message_code الأصلي بدلاً من إرسال رسالة مكررة. استخدم UUID أو قيمة أخرى فريدة لكل إرسال منطقي.

NotifySegment

Anchor link to

يستهدف المستخدمين الذين يطابقون شريحة جمهور أو تعبير فلتر.

الحقلالنوعالوصف
scheduleScheduleمتى وكيف يتم الإرسال. مطلوب.
applicationstringرمز التطبيق.
platformsarray of Platformالمنصات التي تستهدفها الرسالة.
codestringرمز الشريحة. متعارض مع expression و filter_expression.
expressionstringتعبير Seglang.
filter_expressionFilterExpressionتعبير فلتر منظم (متقدم).
payloadPayloadحمولة Push / SMS / Telegram / Kakao / LINE / WhatsApp / Viber. متعارض مع email_payload.
email_payloadEmailPayloadحمولة البريد الإلكتروني.
campaignstringرمز الحملة لنسب هذه الرسالة إليه.
frequency_cappingFrequencyCappingحدود التكرار لكل مستخدم.
send_rateSendRateتقييد معدل الإرسال.
message_typeMessageTypeMESSAGE_TYPE_MARKETING (افتراضي) أو MESSAGE_TYPE_TRANSACTIONAL. يتحكم في تصفية مجموعة التحكم.
dynamic_content_placeholdersmap<string, string>يستبدل العناصر النائبة في المحتوى.
meta_dataobjectبيانات وصفية حرة الشكل يتم توجيهها إلى التحليلات النهائية.
use_latest_user_deviceboolعندما تكون true، يتم تسليم الرسالة إلى أحدث جهاز نشط لكل مستخدم (الجهاز الذي لديه أحدث Last Application Open) بدلاً من كل جهاز يطابقه الشريحة. يقتصر النطاق على platforms: يتم النظر فقط في الأجهزة على تلك المنصات، وإذا لم يكن لدى أي منها بيانات Last Application Open، يتم استخدام أول جهاز مطابق بدلاً من إسقاط الإرسال. الافتراضي هو false (إرسال إلى كل جهاز).

مثال: إرسال إلى شريحة

Anchor link to
Terminal window
curl -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": { "body": "Hello!" },
"android": { "body": "Hello!" }
}
}
}
},
"schedule": { "at": "2026-05-01T12:00:00Z" },
"message_type": "MESSAGE_TYPE_MARKETING"
}
}'

NotifyTransactional

Anchor link to

يرسل إلى قائمة صريحة من المستلمين.

الحقلالنوعالوصف
scheduleScheduleمطلوب.
applicationstringرمز التطبيق.
platformsarray of Platformالمنصات التي تستهدفها الرسالة.
test_devicesboolإذا كانت true، يتم الإرسال إلى أجهزة الاختبار الخاصة بالتطبيق فقط.
hwids{ "list": [string, ...] }إرسال إلى هذه hwids فقط.
users{ "list": [string, ...] }إرسال إلى هذه معرفات المستخدمين فقط.
push_tokens{ "list": [string, ...] }إرسال إلى هذه رموز الإشعارات اللحظية فقط.
payloadPayloadحمولة Push / SMS / Telegram / Kakao / LINE / WhatsApp / Viber.
email_payloadEmailPayloadحمولة البريد الإلكتروني.
return_unknown_identifiersboolعندما تكون true، تسرد unknown_identifiers في الاستجابة المعرفات التي لم يتم العثور عليها.
use_latest_user_deviceboolينطبق فقط عند استهداف users. نفس السلوك كما في NotifySegment أعلاه — يسلم رسالة واحدة لكل مستخدم بدلاً من رسالة واحدة لكل جهاز، يقتصر النطاق على platforms. الافتراضي هو false.
campaign, frequency_capping, send_rate, message_type, dynamic_content_placeholders, meta_dataانظر NotifySegment أعلاه.

test_devices، hwids، users، و push_tokens متعارضة. يجب تعيين واحد منها بالضبط.

مثال: معاملاتي حسب معرفات المستخدمين

Anchor link to
Terminal window
curl -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": ["user-123", "user-456"] },
"payload": {
"content": {
"localized_content": {
"en": { "ios": { "body": "Your order has shipped." } }
}
}
},
"schedule": { "at": "2026-05-01T12:00:00Z" },
"message_type": "MESSAGE_TYPE_TRANSACTIONAL",
"return_unknown_identifiers": true,
"use_latest_user_device": true
}
}'

الاستجابة

Anchor link to
{
"result": {
"message_code": "XXXXX-XXXXX-XXXXX",
"unknown_identifiers": []
}
}
الحقلالنوعالوصف
message_codestringرمز رسالة فريد. استخدمه مع /getMessageDetails ونقاط نهاية إحصائيات الرسائل.
unknown_identifiersarray of stringالمعرفات التي لم يتم العثور عليها في الحساب. يتم ملؤها فقط عند تعيين return_unknown_identifiers: true على نوع transactional.

الأنواع المشتركة

Anchor link to
{
"at": "2026-05-01T12:00:00Z",
"follow_user_timezone": true,
"past_timezones_behaviour": "PAST_TIMEZONES_BEHAVIOUR_SEND_IMMEDIATELY"
}
الحقلالنوعالوصف
attimestampوقت الإرسال المطلق (RFC 3339). إذا كان في الماضي، يتم إرسال الرسالة على الفور. بحد أقصى 14 يومًا في المستقبل.
afterdurationبديل لـ at. إرسال بعد هذا الإزاحة من “الآن” (على سبيل المثال "3600s").
follow_user_timezoneboolعندما تكون true، يستقبل كل جهاز الرسالة في at في منطقته الزمنية المحلية.
past_timezones_behaviourenumPAST_TIMEZONES_BEHAVIOUR_SEND_IMMEDIATELY (افتراضي)، PAST_TIMEZONES_BEHAVIOUR_DO_NOT_SEND، أو PAST_TIMEZONES_BEHAVIOUR_NEXT_DAY. له معنى فقط عندما تكون follow_user_timezone هي true.

FrequencyCapping

Anchor link to

حدود التكرار لكل مستخدم للإرسالات التسويقية. لتعطيل التحديد، احذف frequency_capping بالكامل، أو أرسل days: 0 مع count: 0.

{ "days": 7, "count": 3, "exclude": false, "avoid": true }
  • days (int، 1–30، أو 0 لتعطيل التحديد): نافذة المراجعة. يجب إرسالها مع count — إذا كان أحدهما 0، فيجب أن يكون الآخر أيضًا 0؛ إرسال أحدهما كـ 0 بينما الآخر غير صفري يُرجع 400.
  • count (int، 1 أو أعلى، أو 0 لتعطيل التحديد): الحد الأقصى للرسائل المسموح بها خلال days. نفس قاعدة الاقتران مثل days أعلاه.
  • exclude (bool): استبعاد صارم للمستخدمين الذين وصلوا بالفعل إلى الحد الأقصى.
  • avoid (bool): تجنب ناعم للمستخدمين الذين وصلوا بالفعل إلى الحد الأقصى (لا يزالون يُحتسبون في التحليلات).
{ "value": 500, "bucket": "1s", "avoid": false }

يقيّد الإرسال. value هي الرسائل لكل bucket؛ bucket النموذجي هو "1s".

تعداد Platform

Anchor link to

IOS, ANDROID, OSX, WINDOWS, AMAZON, SAFARI, CHROME, FIREFOX, IE, EMAIL, HUAWEI_ANDROID, SMS, WEB, KAKAO, TELEGRAM, LINE, WHATS_APP, VIBER.

تعداد MessageType

Anchor link to
  • MESSAGE_TYPE_UNSPECIFIED: مكافئ لـ MESSAGE_TYPE_MARKETING.
  • MESSAGE_TYPE_MARKETING: يخضع لتصفية مجموعة التحكم وتحديد التكرار.
  • MESSAGE_TYPE_TRANSACTIONAL: يتخطى تصفية مجموعة التحكم وتحديد التكرار. استخدمه لتأكيدات الطلبات، وكلمات المرور لمرة واحدة (OTPs)، والتدفقات الحرجة المماثلة.

مواضيع ذات صلة

Anchor link to