বিষয়বস্তুতে যান

নোটিফাই ব্যাচ

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

একটি কলে একাধিক বার্তা পাঠায়। প্রতিটি আইটেম একটি স্বাধীন Notify: এটি একটি স্বতন্ত্র Notify অনুরোধের মতোই যাচাই করা হয় এবং এটি তার নিজস্ব ফলাফল পায়।

অনুরোধের কাঠামো

Anchor link to
Shape
{
"items": [
{
"item_id": "caller-defined-id",
"request": { ... }
}
]
}
ক্ষেত্রটাইপবিবরণ
itemsNotifyBatchItem-এর অ্যারেআবশ্যক, ১ থেকে ৫০০ এন্ট্রি (সার্ভার-কনফিগার করা সীমা)। আইটেমগুলি সমান্তরালভাবে প্রক্রিয়া করা হয়; ফলাফল অনুরোধের ক্রম অনুসারে ফিরে আসে।

NotifyBatchItem

Anchor link to
ক্ষেত্রটাইপবিবরণ
item_idস্ট্রিংঐচ্ছিক কলার-সরবরাহকৃত কোরিলেশন আইডি, যা ম্যাচিং ফলাফলে প্রতিধ্বনিত হয়। অন্যথায় Pushwoosh দ্বারা ব্যবহৃত হয় না।
requestNotifyRequestএকটি একক Notify কলের মতো একই বডি — segment বা transactional, transaction_id অন্তর্ভুক্ত। আবশ্যক।

উদাহরণ

Anchor link to
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
}
ক্ষেত্রটাইপবিবরণ
resultsNotifyBatchResult-এর অ্যারেঅনুরোধ করা প্রতিটি আইটেমের জন্য একটি এন্ট্রি, অনুরোধের ক্রমে।
succeededপূর্ণসংখ্যাযে আইটেমগুলি একটি ফলাফল রিটার্ন করেছে তাদের সংখ্যা।
failedপূর্ণসংখ্যাযে আইটেমগুলি একটি ত্রুটি রিটার্ন করেছে তাদের সংখ্যা।

NotifyBatchResult

Anchor link to
ক্ষেত্রটাইপবিবরণ
item_idস্ট্রিংঅনুরোধ আইটেমের item_id-এর প্রতিধ্বনি।
indexপূর্ণসংখ্যাঅনুরোধে আইটেমের শূন্য-ভিত্তিক অবস্থান। যখন item_id খালি রাখা হয় তখন ফলাফলগুলি কোরিলেট করতে এটি ব্যবহার করুন।
resultঅবজেক্টআইটেমটি সফল হলে সেট করা হয় — একটি একক Notify প্রতিক্রিয়া-এর মতো একই আকার: message_code এবং unknown_identifiers।
errorNotifyBatchErrorআইটেমটি ব্যর্থ হলে সেট করা হয়।

NotifyBatchError

Anchor link to
ক্ষেত্রটাইপবিবরণ
codeপূর্ণসংখ্যাgRPC স্ট্যাটাস কোড (google.rpc.Code), যেমন INVALID_ARGUMENT-এর জন্য 3।
messageস্ট্রিংডেভেলপার-মুখী ত্রুটি বার্তা, ইংরেজিতে।
reasonস্ট্রিংসংক্ষিপ্ত স্ট্যাটাসের নাম — একই মান যা একটি একক Notify কল রিটার্ন করবে, যেমন EmptySchedule।
domainস্ট্রিংত্রুটি ডোমেইন, api.pushwoosh.com।

ত্রুটি

Anchor link to

ত্রুটিগুলি স্ট্যান্ডার্ড gRPC-Gateway ত্রুটি এনভেলপ ব্যবহার করে: { "code": ..., "message": ..., "details": [...] }। এগুলি এনভেলপ-স্তরের ত্রুটি যা পুরো অনুরোধটি ব্যর্থ করে — একটি পৃথক আইটেম ব্যর্থ হলে results[]-এ প্রতি-আইটেম error তৈরি করে (উপরে NotifyBatchError দেখুন), এগুলির মধ্যে একটি নয়।

HTTP স্ট্যাটাসশর্ত
400items খালি।
400items-এ সার্ভার-কনফিগার করা সীমার (ডিফল্টরূপে ৫০০) চেয়ে বেশি আছে।
400আইটেমগুলির মধ্যে একটিতে request অনুপস্থিত।

উদাহরণ

যখন সীমা ৫০০ তখন ৫০১টি আইটেম পাঠালে HTTP 400 রিটার্ন করে:

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

সম্পর্কিত

Anchor link to