رفتن به محتوای اصلی
پوش نوتیفیکیشن

ارسال پوش به توکن‌های خاص

post
https://push.najva.com/v1/send/token/

یک پیام پوش نوتیفیکیشن به فهرستی از توکن‌های مشخص ارسال می‌کند. توکن هر کاربر از طریق اسکریپت نجوا (window.NAJVA.getUserToken() یا رویداد najvaUserSubscribed) روی وب‌سایت شما در دسترس قرار می‌گیرد — به راهنمای دریافت توکن کاربر نگاه کنید.

درخواست باید multipart/form-data باشد.

نامعتبر بودن یک توکن، کل درخواست را رد نمی‌کند: در نمونهٔ پاسخ زیر یکی از توکن‌ها وضعیت InvalidToken با cost: 0 دارد در حالی که پاسخ کلی همچنان ۲۰۰ است — وضعیت هر توکن جداگانه در Entries.tokens[] گزارش می‌شود، نه با کد خطای HTTP.

احراز هویت

نوع احراز هویتکلید APIpushApiKeyAuth

کلید API را در هدر apiKey بفرستید (نه Authorization: Bearer سرویس‌های پیامک). طبق راهنمای دریافت کلید API، این همان کلید «api key پیامک و پوش‌نوتیفیکیشن» در تب «api key» پنل توسعه‌دهندگان است — پیامک و پوش یک کلید مشترک دارند.

هدر لازم
apiKey: YOUR_API_KEY

کلید خود را کجا پیدا کنم؟

کلید API را از پنل کاربری خود دریافت کنید، آن را در یک متغیر محیطی روی سرور نگه دارید و هرگز در کد سمت کاربر (مرورگر یا اپلیکیشن موبایل) قرار ندهید.

بدنهٔ درخواست

multipart/form-dataالزامی

فرم چندبخشی. فیلدهای تودرتو (`message.title`، `message.notification_click.click_url`، ...) با نقطه از هم جدا می‌شوند.

نامنوعالزامیتوضیح
website_id*
stringالزامی

شناسهٔ سرویس/اسکریپت پوش شما در پنل نجوا.

نمونه45100
ttl
stringاختیاری

عمر پیام به ساعت — بعد از این مدت اگر کاربر آفلاین بود، پیام تحویل داده نمی‌شود.

نمونه24
date
string· date-timeاختیاری

زمان ارسال. اگر خالی بماند، ارسال فوری است (رفتار دقیق برای ارسال زمان‌بندی‌شده روی صفحهٔ منبع تأیید نشده).

نمونه2025-07-21T21:04:45+03:30قالبdate-time
tokens[]*
array<string>الزامی

فهرست توکن‌های گیرنده. هر توکن را در یک فیلد جداگانه با همین نام (tokens[]) بفرستید.

message.title*
stringالزامی

عنوان نوتیفیکیشن.

نمونهtransactional sample
message.body*
stringالزامی

متن نوتیفیکیشن.

نمونهthis is the body of transactional sample
message.icon
string· binaryاختیاری

آیکون کوچک نوتیفیکیشن (فایل تصویری).

قالبbinary
message.image
string· binaryاختیاری

تصویر بزرگ نوتیفیکیشن (فایل تصویری).

قالبbinary
message.notification_click.click_url
string· uriاختیاری

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

نمونهhttps://google.comقالبuri
message.button_1.title
stringاختیاری

متن دکمهٔ اول (اختیاری). وجود message.button_2.* روی صفحهٔ منبع دیده نشد؛ باید با تیم پوش تأیید شود.

نمونهButton One
message.button_1.click_url
string· uriاختیاری

آدرس مقصد دکمهٔ اول.

نمونهhttps://najva.comقالبuri

نمونهٔ درخواست

{
"website_id": "45100",
"ttl": "24",
"date": "2025-07-21T21:04:45+03:30",
"tokens[]": [
"21a4548a-574d-4425-9af2-6a0e70dae649",
"9615c2ea-9d2d-4343-b880-4e79cb115384"
],
"message.title": "transactional sample",
"message.body": "this is the body of transactional sample",
"message.icon": "string",
"message.image": "string",
"message.notification_click.click_url": "https://google.com",
"message.button_1.title": "Button One",
"message.button_1.click_url": "https://najva.com"
}

پاسخ‌ها

ساختار پاسخ

نامنوعالزامیتوضیح
Message
stringاختیاری
نمونهRequest approved.
Entries
objectاختیاری
request_id
string· uuidاختیاری
قالبuuid
tokens
array<PushTokenResult>اختیاری

نتیجهٔ ارسال به یک توکن مشخص.

نمونهٔ پاسخ

{
"Message": "Request approved.",
"Entries": {
"request_id": "4faac313-f3b2-4f5e-b9b9-dabc7e3f5d4c",
"tokens": [
{
"token": "21a4548a-574d-4425-9af2-6a0e70dae649",
"status": "InvalidToken",
"cost": 0
},
{
"token": "9615c2ea-9d2d-4343-b880-4e79cb115384",
"status": "Scheduled",
"cost": 25
}
]
}
}