API ارسال نوتیفیکیشن شخصی
در مقاله قبل در مورد معرفی وب سرویس نوتیفیکیشن و ارسال نوتیفیکیشن به وب و اپلیکیشن صحبت کردیم در این مقاله در مورد وب سرویس ارسال نوتیفیکیشن شخصی توضیح میدهیم.
توضیحات:
اگر تابع همگامسازی کاربران خود با کاربران نجوا را که در بخش راهنمای راهاندازی sdk-android و راهنمای وب پوش توضیح داده شده است پیاده سازی کرده باشید میتوانید برای کاربران خود با استفاده از توکن آنها نوتیفیکیشن ارسال کنید. مزیت این روش این است که میتوانید به صورت کاملا کاستومایز شده برای کاربران خود نوتیفیکیشن ارسال کنید.
مثال:
در زیر یک نمونه ورودی و خروجی این API آورده شده است:
REQUEST-Information
URL: https://app.najva.com/notification/api/v1/notifications/
HTTP-Method: POST
HTTP-Headers:
Content-Type: application/json
Authorization: Token <YOUR_TOKEN>
REQUEST-Body
{
“api_key”: <YOUR_API_KEY>,
“subscriber_tokens”: [TOKEN1, TOKEN2, …],
“title”: “title”,
“body”: “body”,
“onclick_action”: “<YOUR_ACTION>”,
“url”: “http://example.com”,
“content”: “some content”,
“icon”: “https://images.pexels.com/photos/236047/pexels-photo-236047.jpeg?cs=srgb&dl=clouds-cloudy-countryside-236047.jpg&fm=jpg”,
“image”: “https://images.pexels.com/photos/236047/pexels-photo-236047.jpeg?cs=srgb&dl=clouds-cloudy-countryside-236047.jpg&fm=jpg”,
“sent_time”: “2019-01-07T12:00:00”
}
با توجه به این که به چه صورت API را صدا زده باشید یکی از حالت های زیر اتفاق میافتد:
ردیف |
status-code |
Body |
1 |
201 |
{ |
2 |
400 |
{ |
3 |
403 |
{ |
تمامی فیلدهایی که به عنوان ورودی به API داده میشود در جدول زیر به صورت کامل توضیح داده شده است:
important-note | description | required | value-type | field |
این شناسه به صورت اجباری باید ارسال شود؛ در غیر این صورت اطلاعات ارسالی شما توسط نجوا پذیرفته نمیشود. | این همان شناسه یکتای وبسایت یا اپلیکیشن شماست که میتوانید از قسمت api ها در پنل خود آن را دریافت کنید. | yes | uuid | api_key |
اگر این فیلد یک لیست خالی باشد نوتیفیکیشن برای کسی ارسال نمیشود. | این فیلد لیست شناسه کاربران شماست که باید ارسال شود. و نوتیفیکیشن تنها برای همین کاربران شما ارسال میشود. | yes | List of uuid | subscriber_tokens |
این فیلد اجباری است. اگر یک نوتیفیکیشن عنوان نداشته باشد ارسال نمیشود. | عنوان نوتیف ارسالی با این فیلد مقدار میگیرد. رشتهای که به این فیلد نسبت داده میشود باید حداکثر ۱۰۰ کاراکتر باشد. | yes | string | title |
این فیلد اجباری است. اگر یک نوتیفیکیشن بدنه نداشته باشد ارسال نمیشود. | توضیح یا بدنه نوتیف ارسالی با این فیلد مقدار میگیرد. رشتهای که به این فیلد نسبت داده میشود باید حداکثر ۲۰۰ کاراکتر باشد. | yes | string | body |
در صورتی که این فیلد از سمت شما ارسال نشود به صورت دیفالت برابر با open-link در نظر گرفته می شود. | این فیلد مشخص می کند که پس از کلیک روی نوتیف چه اکشنای رخ دهد. این فیلد میتواند یکی از مقادیر زیر را داشته باشد:
Open-link: باز کردن لینکی که در فیلد url داده شده است. Open-sms: باز کردن صفحه sms با شمارهای که در فیلد url داده شده است و با متن پیش فرضی که در فیلد content داده شده است. Open-call: باز کردن صفحه شماره گیر تلفن همراه با شمارهای که در فیلد url داده شده است. Open-app: باز کردن اپلیکیشن شما (همان اپلیکیشنی که sdk را در آن قرار دادهاید. Open-activity: باز کردن اکتیویتیای که در فیلد url داده شده است. Open-telegram-channel: باز کردن کانال تلگرامی که id آن در فیلد url وارد شده است. Join-telegram-channel: اضافه کردن کاربر به کانال تلگرامی که آدرس آن در فیلد url وارد شده است. |
no | string | onclick_action |
این فیلد اجباری است. | این فیلد مقصد نهایی کاربر پس از کلیک روی نوتیف را مشخص میکند. که مثلا میتواند آدرس سایت خود شما باشد. | yes | string | url |
این فیلد تنها زمانی استفاده می شود که شما حالت باز شدن صفحه اس ام اس را انتخاب کرده باشید. و مقدار این فیلد به عنوان نوشته پیش فرض اس ام اس در نظر گرفته میشود. | false | string | content | |
در صورتی که این فیلد ارسال نشود از آیکن وبسایت شما که در پنل ثبت کرده اید استفاده میشود. | این فیلد آدرس url یک فایل عکس است که به عنوان آیکون نوتیفیکیشن تنظیم میشود. که در مثال بالا نمونه آن آورده شده است. | no | string | icon |
این فیلد آدرس url یک فایل عکس است که به عنوان عکس بزرگ نوتیفیکیشن تنظیم میشود. که در مثال بالا نمونه آن آورده شده است. | no | string | image | |
این فیلد زمان ارسال نوتیف را مشخص میکند. و فرمت آن بصورت زیر است و بر اساس ۲۴ ساعت شبانه روز برنامه ریزی میشود:
“2018-12-05T13:00:00” |
yes | string | sent_time |