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

إشعار مجمع

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

يرسل عدة رسائل في استدعاء واحد. كل عنصر هو إشعار مستقل: يتم التحقق من صحته تمامًا مثل طلب Notify مستقل، ويحصل على نتيجته الخاصة.

هيكل الطلب

Anchor link to
Shape
{
"items": [
{
"item_id": "caller-defined-id",
"request": { ... }
}
]
}
الحقلالنوعالوصف
itemsarray of NotifyBatchItemمطلوب، من 1 إلى 500 إدخال (حد يكوّنه الخادم). تتم معالجة العناصر بشكل متزامن؛ تعود النتائج بترتيب الطلب بغض النظر عن ذلك.

NotifyBatchItem

Anchor link to
الحقلالنوعالوصف
item_idstringمعرف ارتباط اختياري يوفره المستدعي، يتم إرجاعه في النتيجة المطابقة. لا يستخدمه Pushwoosh بخلاف ذلك.
requestNotifyRequestنفس الجسم لاستدعاء Notify واحد — يتضمن segment أو transactional و transaction_id. مطلوب.
Terminal window
curl -X POST https://api.pushwoosh.com/messaging/v2/notify/batch \
-H "Authorization: Token YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"items": [
{
"item_id": "order-1001",
"request": {
"transactional": {
"application": "XXXXX-XXXXX",
"platforms": ["IOS", "ANDROID"],
"users": { "list": ["user-123"] },
"payload": {
"content": {
"localized_content": {
"en": { "ios": { "body": "Your order has shipped." } }
}
}
},
"schedule": { "at": "2026-05-01T12:00:00Z" },
"message_type": "MESSAGE_TYPE_TRANSACTIONAL",
"transaction_id": "order-1001-shipped"
}
}
},
{
"item_id": "order-1002",
"request": {
"transactional": {
"application": "XXXXX-XXXXX",
"platforms": ["IOS", "ANDROID"],
"users": { "list": ["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",
"transaction_id": "order-1002-shipped"
}
}
}
]
}'

الاستجابة

Anchor link to
{
"results": [
{
"item_id": "order-1001",
"index": 0,
"result": {
"message_code": "XXXXX-XXXXX-XXXXX",
"unknown_identifiers": []
}
},
{
"item_id": "order-1002",
"index": 1,
"error": {
"code": 3,
"message": "invalid argument",
"reason": "EmptySchedule",
"domain": "api.pushwoosh.com"
}
}
],
"succeeded": 1,
"failed": 1
}
الحقلالنوعالوصف
resultsarray of NotifyBatchResultإدخال واحد لكل عنصر مطلوب، بترتيب الطلب.
succeededintegerعدد العناصر التي أعادت نتيجة.
failedintegerعدد العناصر التي أعادت خطأ.

NotifyBatchResult

Anchor link to
الحقلالنوعالوصف
item_idstringصدى لـ item_id الخاص بعنصر الطلب.
indexintegerموضع العنصر في الطلب يبدأ من الصفر. استخدم هذا لربط النتائج عندما يُترك item_id فارغًا.
resultobjectيتم تعيينه عند نجاح العنصر — نفس شكل استجابة Notify واحدة: message_code و unknown_identifiers.
errorNotifyBatchErrorيتم تعيينه عند فشل العنصر.

NotifyBatchError

Anchor link to
الحقلالنوعالوصف
codeintegerرمز حالة gRPC (google.rpc.Code)، على سبيل المثال 3 لـ INVALID_ARGUMENT.
messagestringرسالة خطأ موجهة للمطور، باللغة الإنجليزية.
reasonstringاسم حالة قصير — نفس القيمة التي سيعيدها استدعاء Notify واحد، على سبيل المثال EmptySchedule.
domainstringنطاق الخطأ، api.pushwoosh.com.

الأخطاء

Anchor link to

تستخدم الأخطاء غلاف الخطأ القياسي لـ gRPC-Gateway: { "code": ..., "message": ..., "details": [...] }. هذه أخطاء على مستوى الغلاف تؤدي إلى فشل الطلب بأكمله — فشل عنصر فردي ينتج خطأ error لكل عنصر في results[] بدلاً من ذلك (انظر NotifyBatchError أعلاه)، وليس أحد هذه الأخطاء.

حالة HTTPالشرط
400items فارغ.
400items يحتوي على أكثر من الحد الذي يكوّنه الخادم (500 افتراضيًا).
400أحد العناصر يفتقد request.

مثال

إرسال 501 عنصرًا عندما يكون الحد 500 يُرجع HTTP 400:

{
"code": 3,
"message": "items must not exceed 500 entries, got 501",
"details": []
}

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

Anchor link to