Skip to content

مستندات API ارسال پیام به کاربر

این API به شما امکان می‌دهد اعلان‌ها را از طریق کانال‌های مختلف مانند وب‌پوش، اپ‌پوش، ایمیل، اس ام اس و … به کاربران ارسال کنید. در ادامه تمام مستندات مورد نیاز برای شروع پیاده‌سازی آورده شده است.

دریافت کلیدهای امنیتی

برای درخواست ارسال پیام به صورت سرور به سرور شما نیاز به دو کلید دارید که داخل داشبورد برای شما فراهم شده است. کلید اول همان APP_ID شماست که برای پیاده‌سازی SDK از آن استفاده کرده‌اید. کلید دوم نیز API_Key مربوط به سرور شما می‌باشد که داخل تنظیمات اپلیکیشن می‌توانید مشاهده کنید. این کلیدها به ازای هر اپلیکیشن متفاوت می‌باشند

پس از دریافت این کلیدها از داشبورد، باید داخل Header درخواست خود آن‌ها را ثبت کنید. کلیدهای مرتبط با هر کدام به شرح زیر است

'X-Application-Id': '{YOUR APP_ID FROM METRIX DASHBOARD}'
'X-API-Key': '{YOUR API_Key FROM METRIX DASHBOARD}'
  • APP_ID: همان کلید اپلیکیشن شماست که از پنل متریکس آن را دریافت می‌کنید
  • API_Key: همان کلید درسترسی مختص به سرور شماست که از پنل متریکس یا تماس با پشتیبانی آن را دریافت می‌کنید

فرمت درخواست ارسال پیام به کاربر

برای ارسال پیام باید درخواست به صورت زیر ارسال شود.

POST 'https://entry.metrix.ir/push'
 
- Header 'X-Application-Id': 'APP_ID'
- Header 'X-API-Key': 'API_Key'
- Header 'content-type': 'application/json'
 
- Body
{
  "recipients": ["customUserId1", "customUserId2", ...] // customUserId of recipients
  "channel": "SMS",
  "message": {
    "title": "Important update",
    "body": "A new version of the application is available now!"
  }
}
  • پارامتر recipients لیست customUserId کاربرانی است که میخواهیم برای آن ها پیام ارسال شود. customUserId شناسه ای است که قبلا برای معرفی کاربر به صورت یکتا به متریکس ارسال کرده اید.
  • پارامتر message حاوی محتویات پیام درخواستی برای ارسال به کاربر است که در ادامه فرمت های مختلف آن با توجه به کانال انتخابی آورده شده است.

کانال های پشتیبانی شده

  1. ارسال وب‌پوش
{
    "recipients": ["customUserId1", "customUserId2"],
    "channel": "WEB_PUSH",
    "message": {
        "title": "اعلان جدید",
        "body": "شما پیام جدیدی دارید!",
        "url": "https://example.com/notifications",
        "icon": "https://example.com/icon.png",
        "images": [{"url": "https://example.com/image1.png"}],
        "buttons": [{"label": "مشاهده", "link": "https://example.com/view"}]
    }
}
  1. ارسال اپ‌پوش
{
    "recipients": ["customUserId1", "customUserId2"],
    "channel": "APP_PUSH",
    "message": {
        "title": "اعلان برنامه",
        "body": "آخرین به‌روزرسانی را بررسی کنید!",
        "url": "https://example.com/app-update",
        "icon": "https://example.com/app-icon.png",
        "images": [{"url": "https://example.com/app-image.png"}],
        "buttons": [{"label": "باز کردن برنامه", "link": "app://open"}]
    }
}
  1. ارسال ایمیل
{
    "recipients": ["customUserId1", "customUserId2"],
    "channel": "EMAIL",
    "message": {
        "title": "به‌روزرسانی مهم",
        "body": "<html><body><p>نسخه جدیدی از اپلیکیشن شما در حال حاضر در دسترس است!</p></body></html>"
    }
}
  1. ارسال اس ام اس
{
    "recipients": ["customUserId1", "customUserId2"],
    "channel": "SMS",
    "message": {
        "body": "لطفا بیاید خرید کنید!"
    }
}
  1. ارسال وب‌هوک
{
    "recipients": ["customUserId1", "customUserId2"],
    "channel": "WEB_HOOK",
    "message": {
        "title": "اعلان وب‌هوک",
        "body": "این یک بارگذاری وب‌هوک است.",
        "url": "https://webhook.example.com/endpoint",
        "urlMethod": "POST",
        "format": "JSON",
        "headers": [{"key": "Content-Type", "value": "application/json"}]
    }
}
  1. ارسال پیام درون‌برنامه‌ای
{
    "recipients": ["customUserId1", "customUserId2"],
    "channel": "IN_APP",
    "message": {
        "title": "اعلان درون‌برنامه‌ای",
        "body": "<html><body><p>شما یک پیام جدید دارید</p></body></html>",
        "duration": 5000,
        "alignment": "CENTER"
    }
}
  1. ارسال پیام درون‌سایتی
{
    "recipients": ["customUserId1", "customUserId2"],
    "channel": "ON_SITE",
    "message": {
        "title": "اعلان درون‌سایتی",
        "body": "<html><body><p>شما یک پیام جدید دارید</p></body></html>",
        "duration": 3000,
        "alignment": "TOP"
    }
}