تصدير إحصائيات الرسائل بشكل غير متزامن
exportMessagesStatistics يصدر سجل الرسائل والإحصائيات إلى ملف CSV على الخادم. استخدمه للسحوبات الكبيرة أو لكامل الحساب التي لا يمكن لـ messages:list التعامل معها.
متى تستخدم التصدير بدلاً من messages:list
Anchor link toاستخدم messages:list للبحث المباشر والمقسم إلى صفحات لفترة محدودة. استخدم exportMessagesStatistics عندما تتجاوز النتيجة حد التقسيم العميق للصفحات لـ messages:list (page × per_page > 100000)، أو عندما يكون الهدف هو ملف واحد قابل للتنزيل بدلاً من JSON مقسم إلى صفحات. لا يوجد حد للتصدير على date_range أو عدد الصفوف، لأنه يبث النتيجة إلى ملف على القرص بدلاً من الاحتفاظ بها في استجابة واحدة.
كيف يعمل تدفق التصدير
Anchor link to- استدعاء
exportبنفس المرشحات مثلmessages:list. تعيد الاستجابة معرف المهمةuidعلى الفور، قبل إنشاء الملف. - استطلاع
statusباستخدام هذاuidحتى يبلغ عنSTATUS_SUCCESS(أوSTATUS_FAILED). - استدعاء
resultبنفسuidللحصول علىfileالذي تم إنشاؤه وfile_urlجاهز للاستخدام. - تنزيل الملف. استخدم
file_urlكما هو، أو انظرresultلبناء عنوان URL منfileإذا عاد فارغًا.
استخدم lastTasks للبحث عن مهام التصدير الأخيرة لتطبيق ما، و delete لإلغاء مهمة أو إزالة ملفها مبكرًا.
الطرق
Anchor link toتتكون دورة حياة التصدير من خمس طرق، بالإضافة إلى نقطة نهاية تنزيل عادية:
| الطريقة | الوصف |
|---|---|
exportMessagesStatistics/export | يضع تصديرًا في قائمة الانتظار ويعيد uid للمهمة. |
exportMessagesStatistics/status | يتحقق من تقدم المهمة. |
exportMessagesStatistics/result | يعيد اسم الملف الذي تم إنشاؤه بمجرد انتهاء المهمة. |
exportMessagesStatistics/lastTasks | يسرد مهام التصدير الأخيرة لتطبيق ما. |
exportMessagesStatistics/delete | يلغي مهمة أو يزيل ملفها قبل انتهاء فترة الاحتفاظ. |
| تنزيل | ينزل ملف CSV الذي تم إنشاؤه بالاسم. |
export
Anchor link toيضع تصدير سجل الرسائل في قائمة الانتظار ويعيد معرف المهمة على الفور.
POST https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/export
الترويسات
Anchor link toيحتاج الطلب إلى رمز Server API:
| الاسم | مطلوب | الوصف |
|---|---|---|
Authorization | نعم | رمز Server API. يجب توفيره بالتنسيق التالي: Authorization: Api <Server Key>. |
معلمات نص الطلب
Anchor link toيقبل نص الطلب الحقول التالية:
| الاسم | مطلوب | النوع | الوصف |
|---|---|---|---|
type | نعم | String | يجب أن يكون “TASK_TYPE_EXPORT. |
export_messages | نعم | Object | معلمات التصدير، الموضحة أدناه. |
export_messages | انظر الملاحظة | String | رمز تطبيق Pushwoosh. مطلوب إذا لم يتم تعيين app_group_code. |
export_messages | انظر الملاحظة | String | رمز مجموعة التطبيقات، يصدر عبر كل تطبيق في المجموعة. مطلوب إذا لم يتم تعيين application_code. |
export_messages | لا | String | بحث نصي حر في عنوان الرسالة ومحتواها. |
export_messages | لا | Object | مرشحات الرسائل، الموضحة أدناه. احذفها لتصدير سجل الحساب بالكامل. |
export_messages | لا | Array | الأعمدة التي سيتم تضمينها في CSV، الموضحة أدناه. |
export_messages_v2.filters يقبل:
| الاسم | النوع | الوصف |
|---|---|---|
statuses | Array | حالات الرسائل التي سيتم تضمينها. القيم الممكنة
|
platforms | Array | رموز المنصات (رقمية، على سبيل المثال 1 لـ iOS)، وليست سلاسل أسماء المنصات المستخدمة بواسطة messages:list. |
sent_date | Object | فترة التقرير المفلترة حسب تاريخ الإرسال: {"date_from": "YYYY-MM-DD", "date_to": "YYYY-MM-DD"}. |
created_date | Object | فترة التقرير المفلترة حسب تاريخ إنشاء الرسالة، بنفس تنسيق sent_date. |
created_via | Array | مصدر الرسالة. القيم الممكنة
|
segments | Array | رموز المرشحات التي أرسلت إليها الرسالة. |
campaigns | Array | رموز الحملات. على عكس messages:list، يأخذ هذا قائمة، وليس رمزًا واحدًا. |
message_id | String (uint64) | معرف رسالة رقمي واحد، بين علامتي اقتباس. على عكس messages:list، يأخذ التصدير معرفًا واحدًا، وليس مصفوفة. |
message_code | String | رمز رسالة واحد. |
export_messages_v2.properties يحدد الأعمدة التي يحتوي عليها ملف CSV.
القيم الممكنة
"EXPORT_MESSAGE_PROPERTY_ID""EXPORT_MESSAGE_PROPERTY_TIMESTAMP""EXPORT_MESSAGE_PROPERTY_CONTENT""EXPORT_MESSAGE_PROPERTY_TITLE""EXPORT_MESSAGE_PROPERTY_APPLICATIONS""EXPORT_MESSAGE_PROPERTY_STATUS""EXPORT_MESSAGE_PROPERTY_PLATFORMS""EXPORT_MESSAGE_PROPERTY_SOURCE""EXPORT_MESSAGE_PROPERTY_FILTER""EXPORT_MESSAGE_PROPERTY_SUBSCRIPTION_SEGMENTS""EXPORT_MESSAGE_PROPERTY_SENT""EXPORT_MESSAGE_PROPERTY_OPENED""EXPORT_MESSAGE_PROPERTY_ERRORS""EXPORT_MESSAGE_PROPERTY_RECIPIENTS""EXPORT_MESSAGE_PROPERTY_DELIVERED""EXPORT_MESSAGE_PROPERTY_TOTAL_DELIVERED""EXPORT_MESSAGE_PROPERTY_TOTAL_OPENED""EXPORT_MESSAGE_PROPERTY_TOTAL_CLICKS""EXPORT_MESSAGE_PROPERTY_CLICKS""EXPORT_MESSAGE_PROPERTY_UNSUBSCRIBED"
مثال على الطلب
Anchor link to{ "type": "TASK_TYPE_EXPORT_MESSAGES_V2", "export_messages_v2": { "application_code": "XXXXX-XXXXX", "filters": { "created_date": { "date_from": "2026-01-01", "date_to": "2026-06-30" }, "statuses": ["MESSAGE_STATUS_DONE"], "platforms": [1, 3] }, "properties": [ "EXPORT_MESSAGE_PROPERTY_ID", "EXPORT_MESSAGE_PROPERTY_TIMESTAMP", "EXPORT_MESSAGE_PROPERTY_STATUS", "EXPORT_MESSAGE_PROPERTY_PLATFORMS", "EXPORT_MESSAGE_PROPERTY_SENT", "EXPORT_MESSAGE_PROPERTY_OPENED" ] }}{ "uid": "177458"}{ "error": "account not found"}status
Anchor link toيعيد تقدم مهمة التصدير.
POST https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/status
معلمات نص الطلب
Anchor link toمرر معرف المهمة الذي أعاده export:
| الاسم | مطلوب | النوع | الوصف |
|---|---|---|---|
uid | نعم | String (int64) | معرف المهمة من استجابة export، على سبيل المثال "177458". |
مثال على الطلب
Anchor link to{ "uid": "177458"}{ "status": "STATUS_SUCCESS", "progress": 1}status هو واحد من "STATUS_PENDING"، "STATUS_SUCCESS"، أو "STATUS_FAILED". progress هو كسر بين 0 و 1؛ استطلع status حتى يصل إلى "STATUS_SUCCESS" قبل استدعاء result.
result
Anchor link toيعيد اسم الملف الذي تم إنشاؤه بمجرد اكتمال المهمة.
POST https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/result
معلمات نص الطلب
Anchor link toمرر نفس معرف المهمة الذي أعاده export:
| الاسم | مطلوب | النوع | الوصف |
|---|---|---|---|
uid | نعم | String (int64) | معرف المهمة من استجابة export، على سبيل المثال "177458". |
مثال على الطلب
Anchor link to{ "uid": "177458"}{ "export_messages_v2_result": { "file": "Export_Messages_v2_12345_20260813120000-a1b2c3d4.csv", "file_url": "https://app.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/download/Export_Messages_v2_12345_20260813120000-a1b2c3d4.csv" }}استدعاء result قبل أن يبلغ status عن "STATUS_SUCCESS" يعيد نتيجة فارغة. file_url هو رابط جاهز للاستخدام إلى نقطة نهاية التنزيل على مركز البيانات الصحيح للحساب — استخدمه كما هو بدلاً من بناء عنوان URL من file بنفسك. يكون file_url فارغًا إذا لم يكن لمركز بيانات الحساب عنوان URL أساسي مكون. في هذه الحالة، يمكنك فقط الرجوع إلى بناء عنوان URL من file إذا كان الحساب على مركز البيانات الافتراضي app.pushwoosh.com — حساب على مركز بيانات آخر أو نطاق whitelabel ليس لديه طريقة لاشتقاق المضيف الصحيح من file وحده.
lastTasks
Anchor link toيسرد مهام التصدير الأخيرة لتطبيق ما، الأحدث أولاً.
POST https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/lastTasks
معلمات نص الطلب
Anchor link toكل معلمة هي مرشح اختياري؛ احذفها جميعًا لسرد كل مهمة يمكن للرمز الوصول إليها:
| الاسم | مطلوب | النوع | الوصف |
|---|---|---|---|
application | لا | String | رمز تطبيق Pushwoosh. احذفه لسرد المهام عبر جميع التطبيقات التي يمكن للرمز الوصول إليها. |
types | لا | Array | قصر على أنواع مهام محددة. استخدم [“TASK_TYPE_EXPORT لرؤية صادرات الرسائل فقط. |
campaign | لا | String | التصفية حسب رمز الحملة. |
message_id | لا | String (uint64) | التصفية حسب معرف رسالة رقمي واحد، بين علامتي اقتباس. |
message_code | لا | String | التصفية حسب رمز رسالة واحد. |
limit | لا | Integer | الحد الأقصى لعدد المهام التي سيتم إرجاعها. |
timestamp_from | لا | String | إرجاع المهام التي تم إنشاؤها بعد هذا الطابع الزمني فقط (RFC 3339). |
مثال على الطلب
Anchor link to{ "application": "XXXXX-XXXXX", "types": ["TASK_TYPE_EXPORT_MESSAGES_V2"], "limit": 10}{ "tasks": [ { "id": "177458", "timestamp": "2026-08-13T12:00:00Z", "status": "STATUS_SUCCESS", "requested_by_user": "user@example.com", "export_messages_v2": { "application_code": "XXXXX-XXXXX" }, "export_messages_v2_result": { "file": "Export_Messages_v2_12345_20260813120000-a1b2c3d4.csv", "file_url": "https://app.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/download/Export_Messages_v2_12345_20260813120000-a1b2c3d4.csv" } } ]}delete
Anchor link toيحذف مهمة وملفها قبل انتهاء فترة الاحتفاظ لمدة 7 أيام.
POST https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/delete
معلمات نص الطلب
Anchor link toمرر معرف المهمة الذي أعاده export:
| الاسم | مطلوب | النوع | الوصف |
|---|---|---|---|
uid | نعم | String (int64) | معرف المهمة من استجابة export، على سبيل المثال "177458". |
مثال على الطلب
Anchor link to{ "uid": "177458"}{}تنزيل
Anchor link toينزل ملف CSV الذي تم إنشاؤه بواسطة result، بالاسم.
GET https://app.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/download/<file>
الترويسات
Anchor link toصادق بنفس طريقة الطرق الأخرى، أو اعتمد على جلسة Control Panel نشطة:
| الاسم | مطلوب | الوصف |
|---|---|---|
Authorization | نعم | رمز Server API، بنفس تنسيق طرق exportMessagesStatistics الأخرى: Authorization: Api <Server Key> (مخطط Api غير حساس لحالة الأحرف). طلب بدون ترويسة Authorization وبدون جلسة Control Panel مسجلة الدخول يحصل على 401 Unauthorized. |
استبدل <file> بقيمة file الدقيقة من استجابة result، على سبيل المثال:
https://app.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/download/Export_Messages_v2_12345_20260813120000-a1b2c3d4.csvالملف هو ملف CSV يحتوي على الأعمدة المحددة في properties. يظل متاحًا لمدة 7 أيام بعد انتهاء التصدير، ثم تزيله مهمة التنظيف ويتوقف عنوان URL عن الحل.