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 پوشه نسخه v1

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

گرفتن توکن

پس از ثبت نام در پوشه به شما یک توکن اختصاص داده می شود که می توانید از url زیر توکن خودتون رو دریافت کنید. اول در پنل وارد شوید و پس از آن از آدرس زیر برای گرفتن توکن استفاده کنید:

http://panel.pushe.co/profile

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

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

برای ایجاد پوش درخواست خود رو باید به آدرس https://panel.pushe.co/api/v1/notifications ارسال کنید. شما باید پیام خود را به آدرس بالا در فرمت JSON ارسال کنید. همچنین پیامی که سرور به شما می‌دهید در همین قالب است. دستور عمومی پیامها به صورت زیر است:

curl -X POST "https://panel.pushe.co/api/v1/notifications/"  -i -H "Authorization: Token 7fb1………………………………29b464c "  -H "Content-Type: application/json" -H "Accept: application/json" --data 'Payload'

شما برای ارسال درخواست به api کافیست که در هر زبان برنامه نویسی ای که مورد نظر شماست، یک Http Request به api پوشه بفرستید که در هدر آن پارامترهایی که بعد از H- آمده است را بصورت کلید-مقدار اضافه می کنید و در body آن جیسونی که محتوی نوتیفیکیشن هست رامی گذارید. فرمت جیسون نوتیفیکیشن برای انوع اعلان ساده و اعلان پیشرفته در ادامه توضیح داده شده است.

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

برای ارسال یک پوش ساده به همه کاربرانتان اطلاعات ارسال باید به شکل زیر باشد:

{
  "applications": ["com.example.app"],
  "notification": {
    "title": "عنوان پیام",
    "content": "محتوای پیام"
  }
}

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

شما می توانید به روش زیر به دو کاربر براساس PusheId پیام ارسال کنید. دو راه برای دریافت PusheId یک دستگاه وجود دارد. یکی در صفحه نصب ها PusheId همه نصب ها وجود دارند و شما می توانید PusheId دستگاه مورد نظر خود را بیابید. یکی هم در کد سمت کلاینت با فراخوانی متد Pushe.getPusheId می توانید این کار را انجام دهید.

{
  "applications": ["com.example.app"],
  "filter": {
  "pushe_id": ["pid_20aa-ba40-a0","pid_39ca-ee30-d9"]
  },
  "notification": {
    "title": "عنوان پیام",
    "content": "محتوای پیام"
  }
}

ارسال تک پیام برای یک کاربر بر اساس android-id

شما می توانید به روش زیر به یک کاربر با android-id خاص پیام ارسال کنید:

{
  "applications": ["com.example.app"],
  "filter": {
    "device_id": ["1234567890123456"]
  },
  "notification": {
    "title": "عنوان پیام",
    "content": "محتوای پیام"
  }
}

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

ممکن است شما بخواهید تنها اطلاعاتی را به اپ منتقل کنید ولی چیزی به کاربر نمایش داده نشود. برای این کار شما باید در اپ خود یک کلاس برای دریافت json اضافه کنید. نحوه انجام این کار در آموزش های ابتدای این صفحه توضیح داده شده است. کلید "Show_app" در data قرار دارد.کاربرد این کلید زمانی است که می خواهید داده ای را به اپلیکیشن منتقل کنید اما به کاربر پوش نمایش داده نشود. اگر مقدار این کلید true (پیش فرض) باشد پوش به کاربر نمایش داده می شود و اگر false باشد فقط داده منتقل می شود و به کاربر پوش نمایش داده نمی شود. برای استفاده از این قابلیت می توانید از فرمت زیر برای ارسال داده استفاده کنید:

{
  "applications": ["com.example.app"],
  "notification": {
    "show_app": false
  },
  "custom_content": {
    "key_1": "Value_1","Key_2": "Value_2",.......
  }
}

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

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

{
  "applications": [
    "test.test"
  ],
  "notification": {
    "title": "عنوان",
    "content": "تیتر",
    "big_title": "تیتر کامل",
    "big_content": "متن بزرگ",
    "image": "http://url/name.png",
    "icon": "http://url/name.png",
    "ticker": "متن نوار اعلان",
    "notif_icon": "file_download",
    "wake_screen": true,
    "sound_url": "http://static.pushe.co/mp3/2.mp3",
    "visibility": true,
    "led_color": "-8206336",
    "show_app": true,
    "led_on": 300,
    "led_off": 500,
    "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"
        }
      }
    ]
  },
  "data": {
    "delay_while_idle": true,
    "collapse_key": "key1",
    "time_to_live": 172800
  },
  "filter": {
    "operator": [
      "ir-mci"
    ],
    "brand": [
      "LGE"
    ],
    "mobile_net": [
      "lte"
    ],
    "state": [
      "East Azerbaijan"
    ]
  },
  "topics": [""],
  "unique": true,
  "eta":"2016-10-18T13:28:00+03:30"
}

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

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

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

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

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

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

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

    "gaids": [
        "Google Advertisement ID 1",
        "Google Advertisement ID 2",
        "Google Advertisement ID 3",
        "Google Advertisement ID 4"
    ],
    "pids": [
        "Pushe ID 1",
        "Pushe ID 2"
    ],
    "aids": [
        "Android ID 1",
        "Android ID 2"
    ],
    // One of the following, use either data (to use Pushe'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
}

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

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

# نام                                                                                     کاربرد                                                              مقادیر ممکن
1 applications قرار دادن نام پکیج اپلیکیشن ها رشته ای از نام بسته ها
2 title تیتر اعلان کوچک کاراکتر
3 Content متن اعلان کوچک کاراکتر
4 Big_title تیتر اعلان بزرگ(غیر فشرده) کاراکتر
5 Big_content متن اعلان بزرگ (غیر فشرده) کاراکتر
6 image عکس بنر URL عکس
7 icon انتخاب آیکون داخلی پوش URL آیکون
8 ticker متن نوار اعلان کاراکتر
9 notif_icon آیکون جایگزین آیکون اپ یکی از مقادیر جدول 2
10 wake_screen روشن شدن صفحه نمایش به هنگام دریافت پیام بولین True/False
11 sound_url تغییر صدای هشدار به هنگام دریافت اعلان url صدا
12 visibility اعلان نمایش داده شود یا خیر بولین True/False
13 led_color led تعیین رنگ عدد صحیح متناظر با رنگ با استفاده این ابزار
14 led_on led زمان روشن ماندن زمان به میلی ثانیه
15 led_off led زمان خاموش ماندن زمان به میلی ثانیه
16 action_type تعیین نوع عملکرد مقادیر جدول 3
17 url تعیین هدف عملکرد مقادیر جدول 3
18 btn_order ترتیب دکمه یکی از اعداد 1، 2 یا 3
19 btn_content متن دکمه کاراکتر
20 btn_icon آیکون دکمه یکی از مقادیر جدول 2
21 btn_action عملکرد دکمه مقادیر جدول 3
22 delay_while_idle عدم نمایش تا زمانی که گوشی غیرفعال است بولین True/False
23 collapse_key کلید جابجایی کاراکتر
24 time_to_live زمان ماندگاری زمان به ثانیه
25 operator نام اپراتور موبایل operator:["ir-mci", "irancell", "rightel"]
26 brand نام برند دستگاه brand:["samsung", "LGE", "asus", "htc", "lenovo", "sony", "huawei"]
27 mobile_net نوع اینترنت mobile_net:["lte", "wifi"]
28 state استان 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"]
29 topics تعیین کانالهایی که پیام ارسال شود رشته ای از نام کانال ها که با کاما جدا شوند
30 unique به کاربران مشترک اپها یک پیام ارسال شود بولین True/False
31 eta تعیین زمان ارسال eta:"2016-10-18T13:28:00+03:30"

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

مقدار آیکون مقدار آیکون مقدار آیکون مقدار آیکون
airplane
airplanemode_active
card_giftcard
card_giftcard
exit to app
exit_to_app
home
home
moodـbad
mood_bad
alarm
alarm
chat
chat
favorite
favorite
image
image
notifications
notifications
announcement
announcement
file_download
file_download
info
info
open_in_browser
open_in_browser
apps
apps
check_box
check_box
close
close
flag
flag
pause_circle_filled
pause_circle_filled
attach_money
attach_money
file_upload
file_upload
language
language
local_cafe
local_cafe
payment
payment
view_list
view_list
delete
delete
forward
forward
local_dining
local_dining
person
person
audiotrack
audiotrack
call
call
group
group
local_offer
local_offer
phone_android
phone_android
build
build
edit
edit
help
help
loyalty
loyalty
photo_camera
photo_camera
business
business
email
email
highlight_off
highlight_off
map
map
place
place
poll
poll
save
save
school
school
search
search
settings
settings
reply
reply
share
share
shopping_basket
shopping_basket
shopping_cart
shopping_cart
sms
sms
star
star
store
store
sync
sync
thumb_down
thumb_down
thumb_up
thumb_up
 
visibility
visibility
visibility_off
visibility_off
work
work

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

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

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

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

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

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

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