مدیریت تاپیکها
تاپیکها ابزار سگمنتبندی مشترکین پوشفا هستند. کاربران را دستهبندی کنید و اعلانهای هدفمند بفرستید.
تاپیک چیست؟
تاپیکها در پوشفا مانند دستهبندیهای مشترک هستند. برای هر سرویس میتوانید یک یا چند تاپیک بسازید و کاربران را در موقعیتهای مختلف عضو یا خارج کنید. مثلاً مشترکین علاقهمند به یک دسته محصول را عضو تاپیک آن دسته کنید و بعداً نوتیفیکیشنها را فقط به همان تاپیک بفرستید.
توکن FCM یا Subscriber ID؟ (توصیهشده)
همه وبسرویسهای مدیریت تاپیک (عضویت، لغو عضویت و دریافت تاپیکهای دستگاه) در فیلد fcm_token هم توکن FCM و هم Subscriber ID را میپذیرند. روش توصیهشده این است که ابتدا Subscriber ID دستگاه را دریافت کنید و همان مقدار را به این وبسرویسها بفرستید.
ساخت تاپیک در پنل
در بخش سرویسها روی آیکن تاپیک کلیک کنید. تاپیک جدید بسازید، نامی منحصربهفرد انتخاب کنید و UUID آن را یادداشت کنید.
عضو کردن کاربر از جاوااسکریپت
UUID تاپیک را از پنل بردارید. در زمان مناسب (مثلاً بعد از کلیک روی یک دستهبندی) این متد را صدا بزنید:
await window.Pushfa.subscribeTopic('TOPIC-UUID');
لغو عضویت از جاوااسکریپت
برای خارج کردن دستگاه فعلی از یک تاپیک:
await window.Pushfa.unSubscribeTopic('TOPIC-UUID');
بررسی تاپیکهای دستگاه
لیست UUID تاپیکهای ذخیرهشده روی دستگاه فعلی را بخوانید و دکمه عضویت/لغو عضویت را بر اساس آن نمایش دهید:
const topics = await window.Pushfa.getDeviceTopics();
const topicId = 'TOPIC-UUID';
if (topics.includes(topicId)) {
// کاربر عضو است — دکمه لغو عضویت نشان بده
} else {
// کاربر عضو نیست — دکمه عضویت نشان بده
}
کنترل دسترسی تاپیک از جاوااسکریپت
برای هر تاپیک میتوانید بهطور مستقل تعیین کنید عضویت، لغو عضویت یا دریافت لیست از طریق جاوااسکریپت مجاز باشد یا خیر. اگر این دسترسیها غیرفعال شوند، عملیات فقط از طریق وبسرویس بکاند (با کلید خصوصی) قابل انجام است.
وبسرویس: ساخت تاپیک و دریافت UUID
از سمت سرور خودتان میتوانید یک تاپیک جدید بسازید و UUID آن را در پاسخ دریافت کنید. به کلید عمومی و خصوصی نیاز دارد. فقط فیلد name اجباری است؛ بقیه فیلدها اختیاری و پیشفرض false هستند.
| پارامتر | مقدار | اجباری |
|---|---|---|
| api_public_key | کلید عمومی سرویس | بله |
| api_private_key | کلید خصوصی سرویس | بله |
| name | نام تاپیک | بله |
| send_membership_notification | ارسال نوتیفیکیشن هنگام عضویت/خروج (boolean) | خیر |
| allow_js_register | اجازه عضویت از جاوااسکریپت (boolean) | خیر |
| allow_js_unregister | اجازه لغو عضویت از جاوااسکریپت (boolean) | خیر |
| allow_js_get | اجازه دریافت لیست از جاوااسکریپت (boolean) | خیر |
curl -X POST https://pushfa.com/api/topics/create \
-H "Content-Type: application/json" \
-d '{
"api_public_key": "YOUR_PUBLIC_KEY",
"api_private_key": "YOUR_PRIVATE_KEY",
"name": "My topic",
"send_membership_notification": false,
"allow_js_register": true,
"allow_js_unregister": true,
"allow_js_get": true
}'
وبسرویس: عضو کردن توکن در تاپیک
از سمت سرور خودتان میتوانید یک توکن را در تاپیک عضو کنید:
| پارامتر | مقدار | اجباری |
|---|---|---|
| api_public_key | کلید عمومی سرویس | بله |
| api_private_key | کلید خصوصی سرویس | بله |
| fcm_token | توکن FCM یا Subscriber ID دستگاه (استفاده از Subscriber ID توصیه میشود) | بله |
| topic_uuid | شناسه UUID تاپیک (از پنل دریافت کنید) | بله |
curl -X POST https://pushfa.com/api/topics/subscribe \
-H "Content-Type: application/json" \
-d '{
"api_public_key": "YOUR_PUBLIC_KEY",
"api_private_key": "YOUR_PRIVATE_KEY",
"fcm_token": "USER_SUBSCRIBER_ID",
"topic_uuid": "TOPIC_UUID"
}'
وبسرویس: لغو عضویت توکن از تاپیک
برای خارج کردن یک توکن از تاپیک از سمت سرور:
| پارامتر | مقدار | اجباری |
|---|---|---|
| api_public_key | کلید عمومی سرویس | بله |
| api_private_key | کلید خصوصی سرویس | بله |
| fcm_token | توکن FCM یا Subscriber ID دستگاه (استفاده از Subscriber ID توصیه میشود) | بله |
| topic_uuid | شناسه UUID تاپیک (از پنل دریافت کنید) | بله |
curl -X POST https://pushfa.com/api/topics/unsubscribe \
-H "Content-Type: application/json" \
-d '{
"api_public_key": "YOUR_PUBLIC_KEY",
"api_private_key": "YOUR_PRIVATE_KEY",
"fcm_token": "USER_SUBSCRIBER_ID",
"topic_uuid": "TOPIC_UUID"
}'
وبسرویس: دریافت تاپیکهای یک دستگاه
برای دریافت لیست تاپیکهایی که یک توکن در آنها عضو است از این وبسرویس استفاده کنید. به کلید عمومی و خصوصی نیاز دارد.
| پارامتر | مقدار | اجباری |
|---|---|---|
| api_public_key | کلید عمومی سرویس | بله |
| api_private_key | کلید خصوصی سرویس | بله |
| fcm_token | توکن FCM یا Subscriber ID دستگاه | بله |
curl -X POST https://pushfa.com/api/webservices/topics/user-topics \
-H "Content-Type: application/json" \
-d '{
"api_public_key": "YOUR_PUBLIC_KEY",
"api_private_key": "YOUR_PRIVATE_KEY",
"fcm_token": "USER_FCM_TOKEN"
}'
وبسرویس: دریافت اعضای یک تاپیک
برای دریافت لیست دستگاههای عضو یک تاپیک خاص از این وبسرویس استفاده کنید. UUID تاپیک را از پنل کپی کنید.
| پارامتر | مقدار | اجباری |
|---|---|---|
| api_public_key | کلید عمومی سرویس | بله |
| api_private_key | کلید خصوصی سرویس | بله |
| topic_uuid | شناسه UUID تاپیک (از پنل دریافت کنید) | بله |
curl -X POST https://pushfa.com/api/webservices/topics/topic-members \
-H "Content-Type: application/json" \
-d '{
"api_public_key": "YOUR_PUBLIC_KEY",
"api_private_key": "YOUR_PRIVATE_KEY",
"topic_uuid": "TOPIC-UUID"
}'