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 پوشه برای وب


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

احراز هویت

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

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

ایجاد سایت با استفاده از API پوشه

برای ایجاد اپلیکیشن می‌توانید از آدرس https://api.pushe.co/v2/applications/web/ بصورت زیر استفاده کنید:

دامنه https

در صورتی که سایت شما https است، نیازی به ساخت زیردامنه در پوشه ندارید:

curl -X POST https://api.pushe.co/v2/applications/web/ -H 'authorization: Token YOUR_TOKEN' -H 'content-type:application/json' -d '{"domain": "YOUR_DOMAIN (fg. www.pushe.co)", "name": "YOUR_SITE_NAME", "is_https": true}'
کلید فرمت کلید توضیحات
name(اجباری) رشته(String) نام سایت شما
domain(اجباری) رشته(String) دامنه سایت شما
is_https(اجباری) بولین(boolean) اگر دامنه سایت شما https است این مقدار را باید true قرار دهید در غیر اینصورت مقدار false را قرار دهید.‍‍

دامنه http

در صورتی که سایت شما http است، برای نمایش اعلان بر روی سایت خود باید یک زیر دامنه در پوشه ایجاد کنید:

curl -X POST https://api.pushe.co/v2/applications/web/ -H 'authorization: Token YOUR_TOKEN' -H 'content-type:application/json' -d '{"domain": "YOUR_DOMAIN (fg. www.pushe.co)", "name": "YOUR_SITE_NAME", "is_https": false, 
"pushe_subdomain":"YOUR_SUBDOMAIN_NAME"}'
کلید فرمت کلید توضیحات
name(اجباری) رشته(String) نام سایت شما
domain(اجباری) رشته(String) دامنه سایت شما
is_https(اجباری) بولین(boolean) اگر دامنه سایت شما https است این مقدار را برابر true قرار دهید در غیر اینصورت مقدار false را قرار دهید.‍‍
pushe_subdomain(اجباری) رشته(boolean) نام زیردامنه‌ای که قصد دارید از طریق آن اعلان‌های خود را دریافت کنید، بطور مثال my_subdomain در زیردامنه my_subdomain.webpush.pushe.co‍‍

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

{
    "name": "SITE_NAME",
    "pushe_subdomain": "PUSHE_SUBDOMAIN",
    "domain": "YOUR_SITE_DOMAIN",
    "app_id": "UNIQUE_IDENTIFIER_GENERATED_BY_PUSHE",
    "created_at": "UTC TIMEZONE",
    "is_https": "A BOOLEAN REPRESENT YOUR SITE IS HTTPS OR NOT",
    "icon_url": "YOUR_SITE_FAV_ICON",
    "active_users": "NUMBER OF ACTIVE USERS"
}
کلید توضیح
name نام سایت شما.
app_id شناسه سایت شما در پوشه.
pushe_subdomain نام زیردامنه‌ شما در پوشه، درصورتی که سایت شما https باشد این مقدار برای شما null قرار می‌گیرد.
domain دامنه سایت شما.
created_at زمانی که اپلیکیشن شما ساخته شده است.
is_https اگر سایت شما https باشد این مقدار برابر true خواهد، در غیر اینصورت مقدار false را خواهد داشت.
icon_url آدرس fav آیکون سایت شما.
active_users تعداد کاربران فعالی که سایت شما دارد.

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

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

برای دریافت لیست سایت‌های خود می‌توانید از آدرس https://api.pushe.co/v2/applications/web/ بصورت زیر استفاده نمایید:

curl -X GET https://api.pushe.co/v2/applications/web/ -H 'authorization: Token YOUR_TOKEN' -H 'content-type: application/json'

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

[
    {
        "name": "SITE_NAME",
        "pushe_subdomain": "PUSHE_SUBDOMAIN",
        "domain" : "YOUR_SITE_DOMAIN",
        "app_id": "UNIQUE_IDENTIFIER_GENERATED_BY_PUSHE",
        "created_at": "UTC TIMEZONE",
        "is_https": "A BOOLEAN REPRESENT YOUR SITE IS HTTPS OR NOT",
        "icon_url": "YOUR_SITE_FAV_ICON",
        "type": "SMALL INTEGER NUMBER",
        "active_users": "NUMBER OF ACTIVE USERS"
    }
]
کلید توضیح
name نام سایت‌‌ شما.
app_id شناسه اپلیکیشن شما در پوشه.
pushe_subdomain نام زیردامنه‌ای شما در پوشه، درصورتی که سایت شما https باشد این مقدار برای شما null قرار می‌گیرد.
domain دامنه سایت شما.
created_at زمانی که اپلیکیشن شما ساخته شده است.
is_https اگر سایت شما https باشد این مقدار برابر true خواهد، در غیر اینصورت مقدار false را خواهد داشت.
icon_url آدرس fav آیکون سایت شما.
type مشخص کننده توع اپلیکیشن شما می‌باشد. برای پلتفرم وب این مقدار ۲ می‌باشد.
active_users تعداد کاربران فعالی که سایت شما دارد.

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

_ در پوشه بصورت کلی برای تغیر نام اپلیکیشن خود می‌توانید از آدرس https://api.pushe.co/v2/applications/web/YOUR_APPLICATION_ID/ بصورت زیر استفاده نمایید:

curl -X PATCH https://api.pushe.co/v2/applications/web/YOUR_APPLICATION_ID/ -H 'authorization: Token YOUR_TOKEN' -H 'content-type: application/json' -d '{"name": "YOUR_APPLICATION_NAME"}'
کلید فرمت کلید توضیحات
YOUR_APPLICATION_ID(‌اجباری) رشته(String) کلید YOUR_APPLICATION_ID در url اجباری می‌باشد. دقت کنید که بجای این کلید شما باید app_id سایت خود را قرار دهید.
name(اجباری) رشته(String) اسم جدید پکیج اپلیکیشن شما

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

 {
         "name": "NEW SITE NAME",
         "pushe_subdomain": "PUSHE_SUBDOMAIN",
         "domain" : "YOUR_SITE_DOMAIN",
         "app_id": "UNIQUE_IDENTIFIER_GENERATED_BY_PUSHE",
         "created_at": "UTC TIMEZONE",
         "is_https": "A BOOLEAN REPRESENT YOUR SITE IS HTTPS OR NOT",
         "icon_url": "YOUR_SITE_FAV_ICON",
         "type": "SMALL INTEGER NUMBER",
         "active_users": "NUMBER OF ACTIVE USERS"
     }

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

در پوشه بصورت کلی برای حذف سایت خود می‌توانید از آدرس https://api.pushe.co/v2/applications/web}/YOUR_APPLICATION_ID/ بصورت زیر استفاده نمایید:

curl -X DELETE https://api.pushe.co/v2/applications/web/YOUR_APPLICATION_ID/ -H 'authorization: Token YOUR_TOKEN' -H 'content-type: application/json'
کلید فرمت کلید توضیحات
YOUR_APPLICATION_ID(‌اجباری) رشته(String) کلید YOUR_APPLICATION_ID در url اجباری می‌باشد.

ارسال اعلان

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

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

curl -X POST https://api.pushe.co/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": ["8ep6mpmwwor0964d"],
  "platform": 2,
  "data": {
    "title": "عنوان پیام",
    "content": "محتوای پیام"
  }
}
کلید فرمت کلید توضیحات
app_ids(‌اجباری) لیست(List) لیستی از app_idهایی که قصد ارسال اعلان به آنها را دارید.
title(‌اجباری) رشته(String) عنوان اعلانی که قصد ارسال آن را دارید.
content(‌اجباری) رشته(String) محتوای اعلانی که قصد ارسال آن را دارید.
platform(‌اجباری) عدد(int) شماره پلتفرم‌ای که می‌خواهید به آن اعلان را ارسال کنید. برای وب این مقدار برابر ۲ می‌باشد.

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

{
    "wrapper_id": "UNIQUE IDENTIFIER",
    "hashed_id": "SHARE_URL",
    "app_ids": ["8ep6mpmwwor0964d"],
    "data": {
        "title": "عنوان اعلان",
        "content": "محتوای اعلان"
    },
    "statistics": {
        "recipient_count": 0,
        "delivered": 0,
        "clicked": 0,
        "dismissed": 0,
        "nacked": 0,
        "acked": 0
    },
    "platform": 2 ,
    "created_at": "DateTime",
    "dispatch_started_at": null,
    "dispatch_ended_at": null,
    "updated_at": null,
}
کلید توضیح
wrapper_id شناسه اعلان
hashed_id کلید یکتایی که در لینک اشتراک گذاری مورد استفاده قرار می‌گیرد..
app_ids لیستی از شناسه‌های سایت‌هایی که قرار است به آنها اعلان ارسال شود.
statistics فیلد jsonای که مشخص کننده آمار اعلان ارسالی می‌باشد.
platform شناسه پلتفرمی که اعلان برای آن ارسال شده است.
created_at زمان ساخت اعلان
dispatch_started_at زمان شروع ارسال
dispatch_ended_at زمان پایان ارسال
updated_at زمانی که اعلان آپدیت شده است.

ارسال تک پیام برای یک کاربر بر اساس device_id

شما می توانید با استفاده از آدرس https://api.pushe.co/v2/messaging/notifications/ به روش زیر به کاربران خود براساس device_id پیام ارسال کنید. برای دریافت device_id کاربران ‌می‌توانید از تابع Pushe.getDeviceId استفاده کنید و device_id کاربران را در پایگاه‌داده خود ذخیره کنید. برای نحوه استفاده از تابع Pushe.getDeviceId به راهنمای راه‌اندازی وب پوش قسمت ذخیره آی دی یکتای کاربران مراجعه کنید.

curl -X POST https://api.pushe.co/v2/messaging/notifications/ -H 'authorization: Token YOUR_Session_TOKEN' -H 'content-type: application/json' -d '{"app_ids": ["com.package_name_34"], "filters": {"device_id": ["sample_device_id_1","sample_device_id_2"]}, "data": {"title": "عنوان پیام", "content": "محتوای پیام"}}'

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

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

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

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

{
  "app_ids": ["8ep6mpmwwor0964d"],
  "data": {
    "title": "عنوان",
    "content": "تیتر",
    "image": "http://url/name.png",
    "icon": "http://url/name.png",
    "close_on_click": true,
    "action": {
      "url": "tg://join?invite=sdfdsfdsfds",
      "action_type": "U"
    },
    "buttons": [
      {
        "btn_order": 1,
        "btn_content": "متن دکمه",
        "btn_action": {
          "url": "tg://join?invite=fdsfdsfds",
          "action_type": "U"
        }
      },
      {
        "btn_order": 2,
        "btn_content": "متن دکمه",
        "btn_action": {
          "url": "http://fgfdgfdg.com",
          "action_type": "U"
        }
      },
      {
        "btn_order": 3,
        "btn_content": "متن دکمه",
        "btn_action": {
          "url": "call:dddd",
          "action_type": "U"
        }
      }
    ]
  },
  "platform": 2
}
کلید فرمت کلید توضیحات
app_ids(‌اجباری) لیست(List) لیستی از app_idهایی که قصد ارسال اعلان به آنها را دارید .
title(‌اجباری) رشته(String) عنوان اعلانی که قصد ارسال آن را دارید .
content(‌اجباری) رشته(String) محتوای اعلانی که قصد ارسال آن را دارید .
platform(‌اجباری) عدد(int) شماره پلتفرم‌ای که می‌خواهید به آن اعلان را ارسال کنید. برای وب این مقدار برابر ۲ می‌باشد .
icon(اختیاری) رشته (String) آدرس آیکون‌ای که برای ارسال اعلان انتخاب کرده‌اید .
image(اختیاری) رشته (String) آدرس عکس‌ای که برای ارسال اعلان انتخاب کرده‌اید(پشتیبانی در مرورگرهای opera و chrome و edge) .
close_on_click(اختیاری) بولین(boolean) در صورتی که این مقدار برابر true قرار گیرد، اعلان منتظر تعامل کاربر می‌ماند و بسته نخواهند شد(پشتیبانی در مرورگرهای chrome و edge) .
url(اختیاری) رشته (String) در صورتی که کلید action در اعلان قرار گیرد، این فیلد اجباری بوده و مشخص کننده آدرسی است که بعد از کلیک بر روی اعلان کاربر به آن آدرس هدایت می‌شود .
buttons(اختیاری) لبست (list) لیستی از دکمه‌هایی که در اعلان نمایش داده ‌می‌شود. حداکثر تعداد دکمه‌ها در مرورگرهای مختلف متفاوت است(پشتیبانی در مرورگرهای opera و chrome و edge) .
action_type(اختیاری) رشته (String) در صورتی که کلید action در اعلان قرار گیرد، این فیلد اجباری بوده و مشخص کننده نحوه برخورد sdk پوشه با url انتخابی است .
btn_order(اختیاری) عدد (int) در صورتی که کلید buttons در اعلان قرار گیرد، این فیلد اجباری بوده و مشخص کننده ترتیب دکمه‌‌های انتخاب شده است .
btn_content(اختیاری) رشته (String) در صورتی که کلید action در اعلان قرار گیرد، این فیلد اجباری بوده و مشخص کننده اسم دکمه انتخاب شده است .
btn_action(اختیاری) دیکشنری (dict) در صورتی که کلید action در اعلان قرار گیرد، این فیلد اجباری بوده و مشخص کننده اکشن‌ آن دکمه می‌باشد .

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

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

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

# نام                                                                                     کاربرد                                                              مقادیر ممکن
1 app_ids لیستی از app_idهایی که به آن‌‌ها می‌خواهیم اعلان ارسال کنیم. لیستی از app_id
2 title تیتر اعلان کوچک کاراکتر
3 Content متن اعلان کوچک کاراکتر
4 image عکس بنر URL عکس
5 icon انتخاب آیکون داخلی پوش URL آیکون
6 action_type تعیین نوع عملکرد مقادیر جدول ۲
7 url تعیین هدف عملکرد مقادیر جدول ۲
8 close_on_click باقی ماندن پیام تا کلیک کاربر بولین (true یا false)
9 btn_order ترتیب دکمه یکی از اعداد 1، 2 یا 3
10 btn_content متن دکمه کاراکتر
11 btn_action عملکرد دکمه مقادیر جدول ۲
13 platform پلتفرمی که اعلان برای آن ساخته شده است. یکی از اعداد: ۱ برای اندروید - ۲ برای وب - ۳ برای آی او اس

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

مقدار کلید توضیح نوع عملکرد
"U" باز کردن لینک در مرورگر url:"لینک شما"
"D" بستن اعلان

همیشه در کنارتان هستیم

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

شاید جواب سوال شما اینجا باشد: سوالات متداول ، مستندات
وارد کردن تمامی فیلد ها الزامی است.
پیام شما با موفقیت ارسال شد