onesignal pushe.co s-3.664-0.699-5.062-2.099c-1.397-1.398-2.097-3.087-2.097-5.065s0.699-3.667,2.097-5.065c1.397-1.399,3.085-2.099,5.062-2.099 s3.664,0.699,5.062,2.099C223.888,120.556,224.587,122.244,224.587,124.223z"/> ``

راهنمای استفاده از API پوش‌پل

نمونه‌کد و رفع‌خطا

  • برای مشاهده‌ی نمونه‌کد پروژه‌ی پوش‌پل در یونیتی می‌توانید به گیت‌هاب پوش‌پل مراجعه کنید.
  • در صورت وجود هرگونه مشکل ابتدا بخش عیب‌یابی را بررسی کنید و در صورت نبود راه‌حل آن‌را در issues گیت‌هاب و یا پشتیبانی گزارش دهید.


امکانات پوش‌پل از طریق پنل پوش‌پل در اختیار شما هستند. اما اگر می خواهید با کدنویسی و بصورت مستقیم از سرور یا اپ خود ارسال پوش را انجام بدهید، می توانید از API پوش‌پل استفاده کنید. آدرس ‍‍API با توجه به پلتفرمی که از آن استفاده می‌کنید متفاوت است لذا در صورتی که قصد استفاده از پلتفرم اندروید را دارید از کلید android و در صورتی که که قصد استفاده از پلتفرم آی او اس را دارید از کلید ios بجای کلید واژه platform در داک استفاده کنید.

احراز هویت

در نسخه دوم API پوش‌پل شما می‌توانید با استفاده از سیستم‌ احراز هویت Session درخواست‌های خود را ارسال کنید.

برای دریافت Token دائمی خود می‌توانید از قسمت حساب کاربری در کنسول پوش‌پل، توکن خود را دریافت کرده و به جای کلمه‌ی YOUR_SESSION_TOKEN از آن استفاده کنید.

ایجاد اپلیکیشن با استفاده از API پوش‌پل

برای ایجاد اپلیکیشن می‌توانید از آدرس https://api.push-pole.com/v2/applications/{platform}/ بصورت زیر استفاده کنید:

curl -X POST https://api.push-pole.com/v2/applications/{platform}/ -H 'Authorization: Token YOUR_TOKEN' -H 'content-type:application/json' -d '{"package_name": "com.example.app", "name": "example", "framework": 2}'

مقادیر مجاز برای platform می‌تواند android باشد.

کلید فرمت کلید توضیحات
name(اختیاری) رشته(String) نام اپلیکیشن شما
package_name(اجباری) رشته(String) اسم پکیج اپلیکیشن شما
framework(اجباری) عدد(int) چارچوبی که با آن اپلیکیشن خود را ایجاد کرده‌اید. برای مشاهده لیست چارچوب‌ها به جدول شماره ۵ مراجعه نمایید.
client_key(اختیاری) عدد(int) کلید سمت کاربر که از FCM دریافت میکنید.
server_key(اختیاری) رشته(String) کلید سمت سرور که از FCM دریافت میکنید.

پاسخ دریافتی برای درخواست‌‌ ایجاد اپلیکیشن(اندروید و ios) بدین فرمت خواهد بود:

‍‍‍

{
    "name": "APP_NAME",
    "package_name": "PACKAGE_NAME",
    "app_id": "UNIQUE_IDENTIFIER_GENERATED_BY_PUSHPOLE",
    "created_at": "UTC TIMEZONE",
    "framework": "SMALL INTEGER NUMBER",
    "aggregator": "USER INSTANCE",
    "has_one_signal_user": "BOOLEAN FIELD",
    "type": "SMALL INTEGER NUMBER",
    "provider": "PROVIDER INTANCE",
    "credential": {
        "server_key": "SERVER_KEY",
        "client_key": "CLIENT_KEY"
    },
    "active_users": "NUMBER OF ACTIVE USERS"
}
کلید توضیح
name نام اپلیکیشنی که انتخاب کردید، در صورتی که نامی برای اپلیکیشن خود انتخاب نکرده باشید، app_id به عنوان name قرار خواهد گرفت.
app_id شناسه اپلیکیشن شما در پوش‌پل.
package_name اسم پکیج اپلیکیشن شما.
create_at زمانی که اپلیکیشن شما ساخته شده است.
framework مشخص کننده چارچوبی است که با آن اپلیکیشن خود را ایجاد کرده‌اید.
aggregator در صورتی که اپلیکیشن شما در اجاره پوش‌پل باشد این فیلد برای شما ‌‌True خواهد بود.
has_one_signal_user درصورتی که اپلیکیشن شما از onesingal وارد شده باشد این فیلد برای شما ‌true خواهد بود.
type مشخص کننده توع اپلیکیشن شما می‌باشد. برای مشاهده تمام تایپ‌ها میتوانید به جدول ۲ مراجعه کنید.
provider در صورتی که از اپلیکیشن ساز استفاده کرده باشید، این فیلد برای شما به نمایش در خواهد آمد.
credential در صورتی که client_key و server_key را وارد نکرده باشید، فقط client_key را دریافت خواهید کرد.
active_users تعداد کاربران فعالی که اپلیکیشن شما دارد.

چرا در صورتی که از client_key و server_key خود استفاده نکنید، فقط client_key را دریافت می‌کنیم؟
چون پوش‌پل از client_key و server_key خود برای ارسال اعلان‌‌ها استفاده می‌کند، لذا فقط client_key به شما نمایش داده می‌شود.

در صورتی که از client_key و server_key خود برای ارسال اعلان استفاده کنید، می‌توانید با سرور اختصاصی خود نیز برای کاربرانتان اعلان ارسال کنید.

در قرار دادن کلید Authorization به فاصله بین Token و YOUR_TOKEN توجه کنید.

دریافت لیست اپلیکیشن‌ها استفاده از API پوش‌پل

برای دریافت لیست اپلیکیشن‌های خود می‌توانید از آدرس https://api.push-pole.com/v2/applications/{platform}/ بصورت زیر استفاده نمایید:

curl -X GET https://api.push-pole.com/v2/applications/{platform}/ -H 'Authorization: Token YOUR_TOKEN' -H 'content-type: application/json'

مقادیر مجاز برای platform می‌تواند android و ios باشد.

پاسخ دریافتی برای درخواست‌‌ مشاهده لیست اپلیکیشن‌‌ها(اندروید و ios) بدین فرمت خواهد بود:

[
    {
        "name": "APP_NAME",
        "package_name": "PACKAGE_NAME",
        "app_id": "UNIQUE IDENTIFIER",
        "created_at": "2018-10-13T05:49:28.292622Z",
        "framework": 1,
        "aggregator": null,
        "has_one_signal_user": false,
        "type": 1,
        "provider": null,
        "credential": {
            "server_key": "server_key",
            "client_key": "client_key"
        },
        "active_users": 0,
        "installation_count": 0,
        "owner": "YOUR_EMAIL_ADDRESS",
        "welcome_template": null,
        "update_template": null,
        "welcome_template_v2": null,
        "update_template_v2": null,
        "welcome_active": false,
        "icon_url": "ICON_URL"
    }
]
کلید توضیح
name نام اپلیکیشنی که انتخاب کردید، در صورتی که نامی برای اپلیکیشن خود انتخاب نکرده باشید، app_id به عنوان name قرار خواهد گرفت.
package_name اسم پکیج اپلیکیشن شما.
app_id شناسه‌ای که برای اپلیکیشن خود انتخاب کرده‌اید.
create_at زمانی که اپلیکیشن شما ساخته شده است.
framework مشخص کننده چارچوبی است که با آن اپلیکیشن خود را ایجاد کرده‌اید.
aggregator در صورتی که اپلیکیشن شما در اجاره پوش‌پل باشد این فیلد برای شما ‌‌True خواهد بود.
has_one_signal_user درصورتی که اپلیکیشن شما از onesingal وارد شده باشد این فیلد برای شما ‌true ه=خواهد بود.
type مشخص کننده توع پلتفرم اپلیکیشن شما می‌باشد.
provider در صورتی که از اپلیکیشن ساز استفاده کرده باشید، این فیلد برای شما به نمایش در خواهد آمد.
credential در صورتی که client_key و server_key را وارد نکرده باشید، فقط client_key را دریافت خواهید کرد.
active_users تعداد کاربران فعالی که اپلیکیشن شما دارد.
installation_count تعداد نصب‌‌های این اپلیکیشن
welcome_template شناسه اعلان خوش آمد برای این اپلیکشین در v1
update_template شناسه اعلان آپدیت برای این اپلیکیشن در v1
welcome_template_v2 شناسه اعلان خوش آمد برای این اپلیکشین در v2
update_template_v2 شناسه اعلان آپدیت برای این اپلیکیشن در v2
welcome_active تعداد نصب‌‌های این اپلیکیشن
icon_url آدرس url آیکون اپلیکیشن شما

تغیر نام اپلیکیشن با استفاده از API در پوش‌پل

در پوش‌پل بصورت کلی برای تغیر نام اپلیکیشن خود می‌توانید از آدرس https://api.push-pole.com/v2/applications/{platform}/YOUR_APPLICATION_ID/ بصورت زیر استفاده نمایید:

curl -X PATCH https://api.push-pole.com/v2/applications/{platform}/YOUR_APPLICATION_ID/ -H 'Authorization: Token YOUR_TOKEN' -H 'content-type: application/json' -d '{"name": "YOUR_APPLICATION_NAME"}'

مقادیر مجاز برای platform می‌تواند android و ios باشد.

کلید فرمت کلید توضیحات
YOUR_APPLICATION_ID(‌اجباری) رشته(String) کلید YOUR_APPLICATION_ID در url اجباری می‌باشد.
name(اجباری) رشته(String) اسم جدید پکیج اپلیکیشن شما

فرمت پاسخ دریافتی بدین صورت خواهد بود:

 {
     "name": "NEW_APP_NAME",
     "package_name": "PACKAGE_NAME",
     "app_id": "UNIQUE IDENTIFIER",
     "created_at": "2018-10-11T13:25:31.050004Z",
     "framework": 4,
     "aggregator": null,
     "has_one_signal_user": false,
     "type": 1,
     "provider": null,
     "credential": {
         "server_key": "server_key",
         "client_key": "client_key"
     },
     "active_users": 0,
     "installation_count": 0,
     "owner": "YOUR_EMAIL_ADDRESS",
     "welcome_template": null,
     "update_template": null,
     "welcome_template_v2": null,
     "update_template_v2": null,
     "welcome_active": false,
     "icon_url": null
 }

حذف اپلیکیشن با استفاده از API در پوش‌پل

در پوش‌پل بصورت کلی برای حذف نام اپلیکیشن خود می‌توانید از آدرس https://api.push-pole.com/v2/applications/{platform}/YOUR_APPLICATION_ID/ بصورت زیر استفاده نمایید:

curl -X DELETE https://api.push-pole.com/v2/applications/{platform}/YOUR_APPLICATION_ID/ -H 'Authorization: Token YOUR_TOKEN' -H 'content-type: application/json'

مقادیر مجاز برای platform می‌تواند android و ios باشد.

کلید فرمت کلید توضیحات
YOUR_APPLICATION_ID(‌اجباری) رشته(String) کلید YOUR_APPLICATION_ID در url اجباری می‌باشد.

دریافت تاریخچه نصب‌های یک اپلیکیشن با استفاده از API در پوش‌پل

برای دریافت تاریخچه نصب‌های یک اپلیکیشن می‌توانید از آدرس https://api.push-pole.com/v2/applications/{platform}/YOUR_APPLICATION_ID/export/ بصورت زیر استفاده کنید:

curl -X POST https://api.push-pole.com/v2/applications/{platform}/YOUR_APPLICATION_ID/export/ -H 'Authorization: Token YOUR_TOKEN' -H 'content-type: application/json' 

مقادیر مجاز برای platform می‌تواند android و ios باشد.

کلید فرمت کلید توضیحات
YOUR_APPLICATION_ID(‌اجباری) رشته(String) کلید YOUR_APPLICATION_ID در url اجباری می‌باشد.

فرمت پاسخ دریافتی بدین صورت خواهد بود:

{
   "result": true
}

ارسال اعلان

ارسال پوش ساده به همه کاربران

برای ارسال یک پوش ساده به همه کاربرانتان میتوانبد از آدرس https://api.push-pole.com/v2/messaging/notifications/ بصورت زیر استفاده کنید:

curl -X POST https://api.push-pole.com/v2/messaging/notifications/ -H 'Authorization: Token YOUR_Session_TOKEN' -H 'content-type: application/json' -d '{"app_ids":["com.exmaple.app"], "data" : {"title":"عنوان اعلان", "content":"محتوای اعلان"}}

فرمت داده‌های ارسالی بدین صورت می‌باشد:

{
  "app_ids": ["com.example.app"],
  "data": {
    "title": "عنوان پیام",
    "content": "محتوای پیام"
  }
}
کلید فرمت کلید توضیحات
app_ids(‌اجباری) لیست(List) لیستی از app_idهایی که قصد ارسال اعلان به آنها را دارید.
title(‌اجباری) رشته(String) عنوان اعلانی که قصد ارسال آن را دارید.
content(‌اجباری) رشته(String) محتوای اعلانی که قصد ارسال آن را دارید.

پاسخ دریافتی برای تمامی درخواست‌های ساخت اعلان به صورت زیر خواهد بود:

{
    "wrapper_id": "UNIQUE IDENTIFIER",
    "hashed_id": "SHARE_URL",
    "app_ids": [
        "com.example.app"
    ],
    "data": {
        "title": "عنوان اعلان",
        "content": "محتوای اعلان"
    },
    "data_type": 1,
    "custom_content": {},
    "abt_ids": null,
    "topics": null,
    "filters": null,
    "exclude_filters": null,
    "rate_limit": null,
    "max_recipients": null,
    "unique": false,
    "statistics": {
        "recipient_count": 0,
        "delivered": 0,
        "clicked": 0,
        "dismissed": 0,
        "nacked": 0,
        "acked": 0
    },
    "type": 2,
    "platform": 1,
    "content_type": 1,
    "priority": null,
    "created_at": "DateTime",
    "dispatch_started_at": null,
    "dispatch_ended_at": null,
    "updated_at": null,
    "time_to_live": 604800,
    "collapse_key": null,
    "eta": null,
    "update_av_code": null,
    "status": 1
}
کلید توضیح
wrapper_id شناسه اعلان
hashed_id کلید یکتایی که در لینک اشتراک گذاری مورد استفاده قرار می‌گیرد..
app_ids لیستی از شناسه‌های اپلیکیشن‌هایی که قرار است به آنها اعلان ارسال شود.
data_type مشخص کتتده توع اعلان می‌باشد.
custom_content مشخص کننده jsonهای ارسالی .
abt_ids(بزودی) شناسه‌ای که برای A/B test مورد استفاده قرار می‌گیرد.
topics فیلد jsonای که مشخص کننده تاپیک‌هایی است که اعلان برای آنها ارسال شده است.
filters فیلد jsonای که مشخص کننده فیلترهایی است که برای اعلان اعمال شده است.
exclude_filters فیلد json ای که مشخص کننده‌ی فیلترهایی است که نمیخواهید به آن‌ها الان ارسال شود.
rate_limit (بزودی) زمانی که مشخص می‌کند در طول چه بازه‌ای اعلان‌ها ارسال شود.
max_recipients مشخص کننده بیشترین تعداد کاربرانی که اعلان را باید دریافت کنند.
unique در صورتی که بیش از ۱ اپلیکیشن شما بر روی دستگاهی نصب باشد، در صورتی که این کلید را برابر true قرار دهید یک اعلان دریافت می‌کند.
statistics فیلد jsonای که مشخص کننده آمار اعلان ارسالی می‌باشد.
type شناسه نوع اعلان ارسالی می‌باشد.
platform شناسه پلتفرمی که اعلان برای آن ارسال شده است.
content_type اعلان ارسالی با استفاده از sdk پوش‌پل اجرا شود.
priority شخص کنند اولویت ارسال است.
created_at زمان ساخت اعلان
dispatch_started_at زمان شروع ارسال
dispatch_ended_at زمان پایان ارسال
updated_at زمانی که اعلان آپدیت شده است.
time_to_live مدت زمان زنده ماندن ارسال به ثانیه
collapse_key کلید جابه‌جایی
eta تعیین زمان ارسال
update_av_code نسخه اپلیکیشن
status وضعیت اعلان

ارسال تک پیام به کاربران خاص

شما می توانید با استفاده از آدرس https://api.push-pole.com/v2/messaging/notifications/ علاوه بر ارسال اعلان به همه‌ی کاربران، اعلان را به یک یا تعدادی کاربر خاص نیز ارسال کنید. برای این کار لازم است از کاربرانی که می‌خواهید به آن‌ها اعلان ارسال شود شناسه داشته باشید. شناسه‌های زیر را می‌توان برای ارسال اعلان استفاده کرد

شناسه نام فیلد توضیحات
Unique Id pushe_id شناسه‌ای که توسط پوش‌پل به کاربران اختصاص داده می‌شود. این شناسه را می‌توانید از طریق صفحه‌ی نصب‌ها در کنسول یا با استفاده از تابع PushPole.getId() در کد بدست آورید.
Android Id android_id شناسه‌ی Android Id توسط اندروید به نصب‌های شما اختصاص داده می‌شود
Google Advertising Id gaid شناسه‌ی Google Advertising Id توسط Google Play Services به کابربران شما اختصاص داده می‌شود

برای ارسال اعلان به کاربران خاص موقع ارسال اعلان در فیلد filters نام نوع شناسه‌ای که می‌خواهید از آن استفاده کنید را بگذارید و جلوی آن لیستی از شناسه‌های کاربرانی که می‌خواهید به آن‌ها اعلان ارسال شود را قرار دهید. برای مثال ارسال اعلان به دو کاربر بر اساس Unique Id آن‌ها به صورت زیر خواهد بود:

curl -X POST https://api.push-pole.com/v2/messaging/notifications/ -H 'Authorization: Token YOUR_Session_TOKEN' -H 'content-type: application/json' -d '{"app_ids": ["com.package_name_34"], "filters": {"pushe_id": ["pid_20aa-ba40-a0","pid_39ca-ee30-d9"]}, "data": {"title": "عنوان پیام", "content": "محتوای پیام"}}'

فرمت داده‌های ارسالی بدین صورت می‌باشد:

{
  "app_ids": ["com.example.app"],
  "filters": {
    "pushe_id": ["pid_20aa-ba40-a0","pid_39ca-ee30-d9"]
  },
  "data": {
    "title": "عنوان پیام",
    "content": "محتوای پیام"
  }
}
کلید فرمت کلید توضیحات
app_ids(‌اجباری) لیست(List) لیستی از app_idهایی که قصد ارسال اعلان به آنها را دارید.
pushe_id(‌اجباری) لیست(List) لیستی از pushe_idهایی که قصد ارسال اعلان به آنها را دارید.
title(‌اجباری) رشته(String) عنوان اعلانی که قصد ارسال آن را دارید.
content(‌اجباری) رشته(String) محتوای اعلانی که قصد ارسال آن را دارید.

ارسال یک JSON بدون نمایش اعلان

ممکن است شما بخواهید تنها اطلاعاتی را به اپ منتقل کنید ولی چیزی به کاربر نمایش داده نشود. برای این کار شما باید در اپ خود یک کلاس برای دریافت json اضافه کنید. نحوه انجام این کار در آموزش های ابتدای این صفحه توضیح داده شده است. کلید "Show_app" در data قرار دارد.کاربرد این کلید زمانی است که می خواهید داده ای را به اپلیکیشن منتقل کنید اما به کاربر پوش نمایش داده نشود. اگر مقدار این کلید true (پیش فرض) باشد پوش به کاربر نمایش داده می شود و اگر false باشد فقط داده منتقل می شود و به کاربر پوش نمایش داده نمی شود. برای استفاده از این قابلیت می توانید از آدرس https://api.push-pole.com/v2/messaging/notifications/ بصورت زیر برای ارسال داده استفاده کنید:

curl -X POST https://api.push-pole.com/v2/messaging/notifications/ -H 'Authorization: Token YOUR_Session_TOKEN' -H 'content-type: application/json' -d '{"app_ids": ["com.package_name"], "data": {"show_app": false}, "custom_content": {"key_1": "Value_1","Key_2": "Value_2"}}'

فرمت داده‌های ارسالی بدین صورت می‌باشد:

{
  "app_ids": ["com.example.app"],
  "data": {
    "show_app": false
  },
  "custom_content": {
    "key_1": "Value_1",
    "Key_2": "Value_2", 
    .......
  },
  "priority":2

}

ارسال اعلان تراکنشی (API چابک)

در صورتی که نیازی به ثبت اعلان در پنل و مشاهده‌ی آمار آن ندارید و نیازمندی شما ارسال اعلان به صورت حجیم و سریع است، می‌توانید از روش ارسال اعلان چابک (Rapid APIs) پوش‌پل استفاده کنید. برای استفاده از این ویژگی بایستی درخواست‌های خود را با استفاده از متود POST به درگاه‌های ارسال چابک پوش‌پل در آدرس https://api.push-pole.com/v2/messaging/rapid ارسال کنید. فرمت داده‌ی ارسالی شما بایستی از قالب زیر پیروی کنند.

  • در هر درخواست بایستی تنها یک اپلیکیشن آی‌دی مشخص شود.
  • گیرندگان اعلان در هر درخواست توسط یکی از سه روش شناسه‌ی تبلیغاتی گوگل (Google Advertisement ID)، شناسه‌ی پوش‌پل (Unique ID) و یا شناسه‌ی اندروید (Android ID) مشخص می‌شوند. دقت کنید که در هر درخواست تنها از یکی از این سه روش برای شناسایی گیرندگان اعلان استفاده می‌شود.
  • حداکثر دریافت‌کنندگان یک اعلان در هر درخواست (اندازه‌ی لیست گیرندگان، aids، pids یا gaids) برابر با ۵۰ نصب است.
  • در کلید data، مقادیری که توسط کتابخانه‌ی پوش‌پل پذیرفته می‌شوند را قرار دهید. در واقع این کلید رزرو شده برای زمانی است که می‌خواهید اعلانی را با استفاده از امکانات کتابخانه به کاربرانتان نمایش دهید.
  • در کلید custom_content می‌توانید هر محتوایی را قرار دهید که به شکل json به دریافت‌کنندای که در برنامه‌ی خود نوشته‌اید تحویل داده می‌شود.

به طور کلی قالب نهایی ارسال این نوع اعلان را در زیر مشاهده می‌کنید.

curl -X POST "https://api.push-pole.com/v2/messaging/rapid/"  -i -H "Authorization: Token 7fb1………………………………29b464c "  -H "Content-Type: application/json" -H "Accept: application/json" --data 'Payload'
{
    "app_id": "com.test.pushpole",

    // One of the following identifiers, use either only G_AID, UniqueID, or AndroidID

    "gaids": [
        "Google Advertisement ID 1",
        "Google Advertisement ID 2",
        "Google Advertisement ID 3",
        "Google Advertisement ID 4"
    ],
    "pids": [
        "PushPole ID 1",
        "PushPole ID 2"
    ],
    "aids": [
        "Android ID 1",
        "Android ID 2"
    ],
    // One of the following, use either data (to use PushPole's SDK features) or custom_content to provide your own JSON

    "data": {
        "title": "Title",
        "content": "Content"
    },
    "custom_content": {
        "1": "2"
    },

    "ttl": 3600 // [int: seconds] Optional, span of time the notification stays alive before being delivered to the user
}

ارسال اعلان پیشرفته

همه ی امکاناتی که در اعلان پیشرفته از طریق پنل قابل انتخاب است را می توانید از طریق API هم استفاده کنید. فرمت یک اعلان پیشرفته که حاوی همه ی امکانات پنل باشد به صورت زیر است:

{
  "app_ids": [
    "com.example.app"
  ],
  "data": {
    "title": "عنوان",
    "content": "تیتر",
    "big_title": "تیتر کامل",
    "big_content": "متن بزرگ",
    "summary": "چکیده ",
    "image": "http://url/name.png",
    "icon": "http://url/name.png",
    "ticker": "متن نوار اعلان",
    "notif_icon": "file_download",
    "wake_screen": true,
    "sound_url": "http://static.push-pole.com/mp3/2.mp3",
    "visibility": true,
    "led_color": "-8206336",
    "show_app": true,
    "led_on": 300,
    "led_off": 500,
    "delay_until": true,
    "action": {
      "url": "tg://join?invite=sdfdsfdsfds",
      "action_type": "U"
    },
    "buttons": [
      {
        "btn_icon": "fileـdownload",
        "btn_order": 1,
        "btn_content": "متن دکمه",
        "btn_action": {
          "url": "tg://join?invite=fdsfdsfds",
          "action_type": "U"
        }
      },
      {
        "btn_icon": "local_cafe",
        "btn_order": 2,
        "btn_content": "متن دکمه",
        "btn_action": {
          "url": "http://fgfdgfdg.com",
          "action_type": "U"
        }
      },
      {
        "btn_icon": "phoneـandroid",
        "btn_order": 3,
        "btn_content": "متن دکمه",
        "btn_action": {
          "url": "call:dddd",
          "action_type": "U"
        }
      }
    ]
  },
  "filters": {
    "operator": [
      "ir-mci", "irancell", "rightel"
    ],
    "brand": [
      "samsung", "LGE", "asus", "htc", "lenovo", "sony", "huawei"
    ],
    "mobile_net": [
      "lte", "wifi" 
    ],
    "state": [
      "East Azerbaijan", "Azarbayjan-e Gharbi", "Ardabil", "Isfahan", "Alborz", "Ilam", "Bushehr", "Tehran", "Chahar Mahall va Bakhtiari",
       "Khorasan-e Jonubi", "Razavi Khorasan", "Khorasan-e Shomali", "Khuzestan", "Zanjan", "Semnan", "Sistan and Baluchestan", "Fars", 
       "Qazvin", "Qom", "Kordestan", "Kerman", "Kermanshah", "Kohgiluyeh va Buyer Ahmad", "Golestan", "Gilan", "Lorestan", "Mazandaran", 
       "Markazi", "Hormozgan", "Hamadan", "Yazd"
    ],
    "app_version":[
      "1.0", "2.0"
    ]
  },
  "exclude_filters": {
    "state": [
      "East Azerbaijan", "Azarbayjan-e Gharbi", "Ardabil", "Isfahan", "Alborz", "Ilam", "Bushehr", "Tehran", "Chahar Mahall va Bakhtiari",
       "Khorasan-e Jonubi", "Razavi Khorasan", "Khorasan-e Shomali", "Khuzestan", "Zanjan", "Semnan", "Sistan and Baluchestan", "Fars", 
       "Qazvin", "Qom", "Kordestan", "Kerman", "Kermanshah", "Kohgiluyeh va Buyer Ahmad", "Golestan", "Gilan", "Lorestan", "Mazandaran", 
       "Markazi", "Hormozgan", "Hamadan", "Yazd"
    ]
  },
  "collapse_key": "key1",
  "time_to_live": 172800,
  "topics":["topic_name1", ...],
  "unique": true,
  "eta":"2016-10-18T13:28:00+03:30",
  "rate_limit": "بزودی",
  "platform": 1,
  "priority": 1,
  "abt_ids": ["notification_wrapper_id", ...] 
}

همه ی کلیدهای استفاده شده در اعلان پیشرفته در جدول ۱ توضیح داده شده اند.

نمونه کدهای ارسال اعلان

برای دریافت نمونه کد‌های ارسال اعلان برای زبان‌های برنامه‌نویسی php , go, c# , nodejs , python به اینجا مراجعه فرمایید.

جدول ۱. کلیدهای اعلان پیشرفته

بعضی از کلید ها مقدارهای مختلف می گیرند که در جدول ۲ و جدول ۳ توضیح داده شده است.

# نام                                                                                     کاربرد                                                              مقادیر ممکن
1 app_ids لیستی از app_idهایی که به آن‌‌ها می‌خواهیم اعلان ارسال کنیم. لیستی از app_id
2 title تیتر اعلان کوچک کاراکتر
3 Content متن اعلان کوچک کاراکتر
4 Big_title تیتر اعلان بزرگ(غیر فشرده) کاراکتر
5 Big_content متن اعلان بزرگ (غیر فشرده) کاراکتر
6 summary متن خلاصه اعلان کاراکتر
7 image عکس بنر URL عکس
8 icon انتخاب آیکون داخلی پوش URL آیکون
9 ticker متن نوار اعلان کاراکتر
10 notif_icon آیکون جایگزین آیکون اپ یکی از مقادیر جدول ۲
11 wake_screen روشن شدن صفحه نمایش به هنگام دریافت پیام بولین True/False
12 sound_url تغییر صدای هشدار به هنگام دریافت اعلان url صدا
13 notif_channel_id ارسال به کاربران کانال خاص رشته‌ای که حاوی شناسه کانال می‌باشد
14 visibility اعلان نمایش داده شود یا خیر بولین True/False
15 led_color led تعیین رنگ عدد صحیح متناظر با رنگ با استفاده این ابزار
16 led_on led زمان روشن ماندن زمان به میلی ثانیه
17 led_off led زمان خاموش ماندن زمان به میلی ثانیه
18 action_type تعیین نوع عملکرد مقادیر جدول ۳
19 url تعیین هدف عملکرد مقادیر جدول ۳
20 btn_order ترتیب دکمه یکی از اعداد 1، 2 یا 3
21 btn_content متن دکمه کاراکتر
22 btn_icon آیکون دکمه یکی از مقادیر جدول ۲
23 btn_action عملکرد دکمه مقادیر جدول ۳
24 delay_until عدم نمایش تا زمانی که گوشی غیرفعال است بولین True/False
25 collapse_key کلید جابجایی کاراکتر
26 time_to_live زمان ماندگاری زمان به ثانیه
27 operator نام اپراتور موبایل "ir-mci", "irancell", "rightel"
28 brand نام برند دستگاه "samsung", "LGE", "asus", "htc", "lenovo", "sony", "huawei"
29 mobile_net نوع اینترنت "lte", "wifi"
30 state استان "East Azerbaijan", "Azarbayjan-e Gharbi", "Ardabil", "Isfahan", "Alborz", "Ilam", "Bushehr", "Tehran", "Chahar Mahall va Bakhtiari", "Khorasan-e Jonubi", "Razavi Khorasan", "Khorasan-e Shomali", "Khuzestan", "Zanjan", "Semnan", "Sistan and Baluchestan", "Fars", "Qazvin", "Qom", "Kordestan", "Kerman", "Kermanshah", "Kohgiluyeh va Buyer Ahmad", "Golestan", "Gilan", "Lorestan", "Mazandaran", "Markazi", "Hormozgan", "Hamadan", "Yazd"
31 app_version تعیین ورژن‌هایی که پیام ارسال شود لیستی از ورژن‌‌های اپلیکیشن
32 topics تعیین تاپیک‌ها که پیام ارسال شود لیستی‌ای از نام تاپیک‌هاکه با کاما جدا شوند
33 unique به کاربران مشترک اپها یک پیام ارسال شود بولین True/False
34 eta تعیین زمان ارسال "2016-10-18T13:28:00+03:30"
35 rate_limit (بزودی) ارسال در طول بازه زمانی زمان به ثانیه
36 platform پلتفرمی که اعلان برای آن ساخته شده است. یکی از اعداد: ۱ برای اندروید - ۲ برای وب - ۳ برای آی او اس
37 priority مشحص کننده اولویت اعلان ساخته است. یکی از اعداد : ۱ برای اولویت کم - ۲ برای اولویت متوسط -۳ برای اولویت زیاد
38 abt_ids(بزودی) فیلتر A/B test لییستی از شناسه اعلان‌هایی که قبلا ارسال شده است.

جدول ۲. آیکون ها

مقدار آیکون مقدار آیکون مقدار آیکون مقدار آیکون
airplane
airplanemode_active
alarm
alarm
announcement
announcement
apps
apps
attach_money
attach_money
audiotrack
audiotrack
build
build
business
business
call
call
cancel
cancel
card_giftcard
card_giftcard
chat
chat
check
check
check_box
check_box
close
close
delete
delete
edit
edit
email
email
event
event
forward
forward
group
group
help
help
highlight_off
highlight_off
history
history
home
home
image
image
info
info
exit_to_app
exit_to_app
favorite
favorite
file_download
file_download
file_upload
file_upload
flag
flag
notifications
notifications
open_in_browser
open_in_browser
pause_circle_filled
pause_circle_filled
payment
payment
person
person
phone_android
phone_android
photo_camera
photo_camera
place
place
language
language
local_cafe
local_cafe
local_dining
local_dining
local_offer
local_offer
loyalty
loyalty
map
map
mood_bad
mood_bad
mood
mood
attach
attach_file

جدول ۳. انواع عملکرد

مقدار کلید توضیح نوع عملکرد
"A" باز کردن اپلیکیشن url:""
"D" بستن اعلان url:""
"G" باز کردن دیالوگ url:""
"T" باز کردن اکتیویتی action_data:"نام اکتیویتی"
"W" باز کردن وب ویو url:"لینک شما"
"U" باز کردن لینک در مرورگر url:"لینک شما"
"U" پیوستن کانال تلگرام url:"tg://join?invite=لینک پیوستن"
"U" دعوت به کانال url:"tg://resolve?domain=نام کانال"
"U" باز کردن صفحه اپ در مایکت url:"myket://application/#Intent;scheme=myket;package=com.example.app;refId=[pushpole];end"
"U" باز کردن صفحه اپ در بازار url:"bazaar://details?id=شناسه اپلیکیشن"
"U" باز کردن صفحه اپ در ایران اپس url:"iranapps://app/شناسه اپلیکیشن"
"U" باز کردن صفحه اپ در گوگل پلی url:"market://dev?id=شناسه اپلیکیشن"
"U" باز کردن صفحه توسعه دهنده در بازار url:"bazaar://collection?slug=by_author&aid=شناسه اپلیکیشن"
"U" باز کردن صفحه توسعه دهنده در ایران اپس url:"iranapps://user/شناسه اپلیکیشن"
"U" باز کردن صفحه توسعه دهنده در گوگل پلی url:"market://dev?id=شناسه اپلیکیشن"
"U" باز کردن شماره گیر url:"tel:شماره تلفن"
"U" باز کردن صفحه پیامک url:"sms:شماره پیامک?body=متن پیام"
"U" باز کردن نرم افزار ایمیل و پر کردن مقادیر url:"mailto:آدرس ایمیل?subject=عنوان ایمیل&body=متن ایمیل"
"U" سایر اینتنت ها url:"اینتنت مورد نظر"

جدول ۴. کدهای رنگ led

رنگ نشان داده شده کد رنگ رنگ نشان داده شده کد رنگ
-65536 -3286016
-16776961 -14336
-16711936 -26624
-256 -8206336
-43264 -16711681
-65436 -16733441
-5635841

جدول ۵. کدهای framework

کد چارچوب نام چارچوب نام چارچوب به لاتین
۱ کوردوا cordova
۲ اندروید android studio
۳ بیسیک۴اندروید basic4android
۴ یونیتی unity
۵ اکلیپس eclipse
۶ ری‌اکت نیتیو react native
۷ اپلیکیشن ساز app builder
۸ ایکس کد xcode
۹ فلاتر flutter


عیب‌یابی

400 (Bad request)

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

Authentication credentials were not provided

در صورتی که خطایی که دارید مربوط به احراز هویت است، ممکن است که توکن فرمت نادرستی داشته باشد. فرمت توکن باید بصورت زیر باشد:

Header:
   "Authorization": "Token $TOKEN"

توکن بعد از کلمه‌ی توکن با یک فاصله قرار میگیرد. (بجای $TOKEN توکن خود را قرار دهید)