পুশ নোটিফিকেশন
আপনার ব্যবহারকারীদের কাছে Web Push নোটিফিকেশন পাঠান। SDK দিয়ে সেটআপ করুন এবং AI-কে সবকিছু সংযুক্ত করতে দিন।
প্রতিটি Proyecta অ্যাপ তার ব্যবহারকারীদের কাছে browser ও PWA push নোটিফিকেশন পাঠাতে পারে। Proyecta SDK, VAPID key তৈরি, subscription সংরক্ষণ, topic ব্যবস্থাপনা এবং delivery সামলায় — কোনো third-party অ্যাকাউন্টের প্রয়োজন নেই।
এটি কীভাবে কাজ করে
Section titled “এটি কীভাবে কাজ করে”Proyecta-তে push নোটিফিকেশন চারটি ধাপে standard Web Push lifecycle অনুসরণ করে:
- Enable — আপনার অ্যাপের জন্য VAPID key তৈরি করুন (একবারের কাজ)
- Subscribe — নোটিফিকেশন পেতে একজন ব্যবহারকারীর device নিবন্ধন করুন
- Identify — একটি anonymous subscription-কে signed-in ব্যবহারকারীর সাথে যুক্ত করুন
- Send — নির্দিষ্ট ব্যবহারকারী, topic বা সবার কাছে নোটিফিকেশন পাঠান
চারটিই SDK-তে proyecta.pushNotifications-এর অধীনে রয়েছে।
আপনার অ্যাপে push চালু করুন
Section titled “আপনার অ্যাপে push চালু করুন”প্রথম call-টি একটি VAPID public key তৈরি করে, যা browser-এর subscription তৈরিতে প্রয়োজন। এটি idempotent — আবার call করলে একই key ফেরত আসে।
import Proyecta from '@proyecta-ai/sdk';
const proyecta = new Proyecta({ apiKey: process.env.PROYECTA_API_KEY });
const { vapidPublicKey } = await proyecta.pushNotifications.enable();AI-কে জিজ্ঞেস করুন: "Enable push notifications and store the VAPID key in a PROYECTA_VAPID_PUBLIC_KEY env var"।
ব্যবহারকারীর device subscribe করুন
Section titled “ব্যবহারকারীর device subscribe করুন”Client-এ, VAPID key দিয়ে একটি Web Push subscription তৈরি করুন, তারপর visitorId-সহ সেটি server-এ পাঠান:
// client sideconst registration = await navigator.serviceWorker.ready;const subscription = await registration.pushManager.subscribe({ userVisibleOnly: true, applicationServerKey: PROYECTA_VAPID_PUBLIC_KEY,});
// server side (or via your API route)const { secret } = await proyecta.pushNotifications.subscribe({ visitorId: currentUser?.id ?? generateAnonymousId(), subscription: { endpoint: subscription.endpoint, keys: { auth: subscription.keys.auth, p256dh: subscription.keys.p256dh, }, },});// Store `secret` on the client — it's required to unsubscribe or identify laterব্যবহারকারী signed in থাকলে visitorId হিসেবে authenticated user ID ব্যবহার করুন, অথবা anonymous visitor-এর জন্য একটি generated UUID ব্যবহার করুন।
anonymous subscription-কে ব্যবহারকারীর সাথে যুক্ত করুন
Section titled “anonymous subscription-কে ব্যবহারকারীর সাথে যুক্ত করুন”কোনো anonymous visitor sign in করলে, পরবর্তী send-এ তাদের target করতে পারার জন্য তাদের বিদ্যমান subscription-কে authenticated user ID-এর সাথে যুক্ত করুন:
await proyecta.pushNotifications.identify({ secret: storedSubscriptionSecret, userId: authenticatedUser.id,});নোটিফিকেশন পাঠান
Section titled “নোটিফিকেশন পাঠান”আপনি নির্দিষ্ট visitor ID, topic, উভয় (union হিসেবে) বা সবার কাছে broadcast করতে পারেন। সবার কাছে broadcast করতে visitorIds ও topics দুটোই বাদ দিন।
// Send to specific usersawait proyecta.pushNotifications.send({ title: 'Your order has shipped', body: 'Track it from your dashboard', visitorIds: ['user_123', 'user_456'], data: { orderId: 'ord_789' }, // custom payload});
// Send to everyone subscribed to a topicawait proyecta.pushNotifications.send({ title: 'New feature just dropped', topics: ['product-updates'], icon: 'https://cdn.example.com/icon.png', image: 'https://cdn.example.com/banner.png',});
// Broadcast to all subscribersawait proyecta.pushNotifications.send({ title: 'Scheduled maintenance at 2am UTC',});send { sent, failed } ফেরত দেয়, যাতে আপনি delivery-র অবস্থা জানতে পারেন। বর্তমান stub response-এ sent সংখ্যাটি target করা stored subscription-এর সংখ্যা বোঝায়, আসল browser delivery নয় — production delivery চালু না হওয়া পর্যন্ত এটিকে delivery confirmation হিসেবে ধরবেন না।
ব্যবহারকারীরা proyecta.pushNotifications.topics sub-resource-এর মাধ্যমে named topic-এ (যেমন product-updates, weekly-digest) subscribe করতে পারেন। broadcast-style আপডেটের জন্য opt-in list পরিচালনার এটিই প্রস্তাবিত উপায় — broadcast-style আপডেটের জন্য আপনাকে নিজে visitor ID ট্র্যাক করতে হবে না।
Unsubscribe করুন
Section titled “Unsubscribe করুন”subscribe থেকে প্রাপ্ত secret ব্যবহার করে subscription সরিয়ে দিন:
await proyecta.pushNotifications.unsubscribe({ secret });AI-কে সংযুক্ত করতে দিন
Section titled “AI-কে সংযুক্ত করতে দিন”এটি হাতে লিখতে হবে না। AI-কে জিজ্ঞেস করুন:
"Enable push notifications for my app. Register a service worker, call pushNotifications.subscribe on the client after the user grants permission, and store the secret in localStorage.""Send a push to all users subscribed to the 'breaking-news' topic whenever a new article is published.""After a user signs in, call pushNotifications.identify to link their anonymous subscription to their user ID."
সতর্কতা
Section titled “সতর্কতা”- Preview-তে আসল push কাজ করে না। Push নোটিফিকেশন শুধুমাত্র আপনার অ্যাপের published version-এ কাজ করে, কারণ browser-গুলোর real origin-এ HTTPS প্রয়োজন।
- iOS-এ PWA প্রয়োজন। iOS 16.4+-এ, Web Push শুধুমাত্র installed Progressive Web App (home screen-এ যোগ করা) থেকে কাজ করে, সরাসরি Safari থেকে নয়।
- Permission একবারের সুযোগ। কোনো ব্যবহারকারী নোটিফিকেশন permission অস্বীকার করলে, browser প্রোগ্রামগতভাবে পুনরায় জিজ্ঞেস করার সুযোগ দেয় না। আপনাকে তাদের browser বা device settings-এ যেতে গাইড করতে হবে।
শীঘ্রই আসছে
Section titled “শীঘ্রই আসছে”- Scheduled ও event-triggered send — অ্যাপ event বা schedule-এর ভিত্তিতে স্বয়ংক্রিয়ভাবে পাঠান
- Deep linking — নোটিফিকেশনে tap করলে অ্যাপের নির্দিষ্ট screen খুলুন