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

Notify

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

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

هيكل الطلب

Anchor link to

نص الطلب هو NotifyRequest بأحد نوعين بالضبط:

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

NotifySegment

Anchor link to

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

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

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

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رمز التطبيق (Application code).
platformsarray of Platformالمنصات التي تستهدفها الرسالة.
test_devicesboolإذا كانت true، يتم الإرسال إلى أجهزة الاختبار الخاصة بالتطبيق فقط.
hwids{ "list": [string, ...] }الإرسال إلى هذه المعرفات (hwids) فقط.
users{ "list": [string, ...] }الإرسال إلى هذه المعرفات (user IDs) فقط.
push_tokens{ "list": [string, ...] }الإرسال إلى هذه الرموز (push tokens) فقط.
payloadPayloadحمولة Push / SMS / Telegram / Kakao / LINE / WhatsApp / Viber.
email_payloadEmailPayloadحمولة البريد الإلكتروني.
return_unknown_identifiersboolعندما تكون true، تعرض قائمة unknown_identifiers في الاستجابة المعرفات التي لم يتم العثور عليها.
use_latest_user_deviceboolينطبق فقط عند استهداف users. عندما تكون القيمة true، يتم تسليم الرسالة إلى أحدث جهاز نشط لكل مستخدم — وهو الجهاز الذي لديه أحدث تاريخ لفتح التطبيق (Last Application Open) — بدلاً من جميع الأجهزة المرتبطة بمعرف المستخدم هذا. القيمة الافتراضية هي 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رمز الرسالة (message code) الفريد. استخدمه مع /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 enum)

Anchor link to

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

تعداد نوع الرسالة (MessageType enum)

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

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

Anchor link to