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 زیر توکن خودتون رو دریافت کنید. اول در پنل وارد شوید و پس از آن از آدرس زیر برای گرفتن توکن استفاده کنید:

https://console.pushe.co/profile

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

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

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

curl -X POST "https://api.pushe.co/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 |

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

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

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