iOS লাইভ অ্যাক্টিভিটিস API
Apple ডকুমেন্টেশন:
একটি Customer Journey লাইভ অ্যাক্টিভিটি পয়েন্টকে একটি র’ JSON এডিটরের পরিবর্তে ফিল্ডের নাম থেকে তার কন্টেন্ট-স্টেট ফর্ম তৈরি করতে দিতে, আপনার attributes-type-এর জন্য একটি স্কিমা প্রকাশ করুন — দেখুন লাইভ অ্যাক্টিভিটি স্কিমাস API।
startLiveActivity
Anchor link toPOST https://api.pushwoosh.com/json/1.3/startLiveActivity
iOS লাইভ অ্যাক্টিভিটিস তৈরি করার অনুমতি দেয়।
রিকোয়েস্ট বডি
Anchor link to| প্যারামিটার | টাইপ | প্রয়োজনীয়/ঐচ্ছিক | বর্ণনা |
|---|---|---|---|
| application | String | প্রয়োজনীয় | Pushwoosh অ্যাপ্লিকেশন কোড |
| auth | String | প্রয়োজনীয় | Pushwoosh কন্ট্রোল প্যানেল থেকে API অ্যাক্সেস টোকেন। |
| notifications | Array | প্রয়োজনীয় | মেসেজ প্যারামিটারের JSON অ্যারে। বিস্তারিত নিচের নোটিফিকেশন টেবিলে দেখুন। |
নোটিফিকেশন
Anchor link tonotifications অ্যারেতে ব্যবহৃত প্যারামিটার:
| প্যারামিটার | টাইপ | প্রয়োজনীয়/ঐচ্ছিক | বর্ণনা |
|---|---|---|---|
| content | String | প্রয়োজনীয়* | লাইভ অ্যাক্টিভিটি শুরু করা পুশের জন্য অ্যালার্ট বডি, এবং ১৬.১ এর নিচের iOS ভার্সন চালিত ডিভাইসগুলিতে দেখানো ফলব্যাক টেক্সট। |
| title | String | প্রয়োজনীয়* | লাইভ অ্যাক্টিভিটি শুরু করা পুশের জন্য অ্যালার্ট টাইটেল। |
| live_activity | Object | প্রয়োজনীয় | iOS-এ লাইভ অ্যাক্টিভিটি তৈরি করার জন্য লাইভ অ্যাক্টিভিটি ডেটা। |
| live_activity.content-state | Object | প্রয়োজনীয় | লাইভ অ্যাক্টিভিটি নোটিফিকেশনের জন্য কন্টেন্ট। |
| live_activity.attributes-type | String | প্রয়োজনীয় | লাইভ অ্যাক্টিভিটিতে ব্যবহৃত অ্যাট্রিবিউটের টাইপ। |
| live_activity.attributes | Object | প্রয়োজনীয় | লাইভ অ্যাক্টিভিটির জন্য অ্যাট্রিবিউট। |
| live_activity_id | String | প্রয়োজনীয় | লাইভ অ্যাক্টিভিটির জন্য একটি ইউনিক আইডেন্টিফায়ার। updateLiveActivity কল করার সময় এই অ্যাক্টিভিটিকে টার্গেট করতে ব্যবহৃত হয়। প্রতি অ্যাক্টিভিটি সেশনের জন্য ইউনিক হতে হবে। |
| filter | String | ঐচ্ছিক | একটি Pushwoosh ফিল্টারের (সেগমেন্ট) নাম। দেখুন সেগমেন্ট / ফিল্টার নাম। এই ফিল্টারের সাথে মিলে যাওয়া সমস্ত ডিভাইসে লাইভ অ্যাক্টিভিটি শুরু হবে। |
| devices | Array of Strings | ঐচ্ছিক | ডিভাইস টোকেন-এর একটি তালিকা। শুধুমাত্র নির্দিষ্ট ডিভাইসগুলিতে লাইভ অ্যাক্টিভিটি শুরু হবে। |
| send_date | String | ঐচ্ছিক | একটি নির্দিষ্ট তারিখ এবং সময়ে লাইভ অ্যাক্টিভিটি শুরু করা পুশটি শিডিউল করে — filter বা devices টার্গেটিংয়ের সাথে কাজ করে। YYYY-MM-DD HH:mm ফরম্যাট ব্যবহার করুন, অথবা অবিলম্বে শুরু করার জন্য now (প্যারামিটারটি বাদ দিলে এটিই ডিফল্ট)। তারিখটি ১ দিনের বেশি অতীত বা ৩০ দিনের বেশি ভবিষ্যতের হতে পারবে না, অন্যথায় রিকোয়েস্টটি একটি ভ্যালিডেশন এরর সহ প্রত্যাখ্যাত হবে। |
| timezone | String | ঐচ্ছিক | send_date ব্যাখ্যা করার জন্য ব্যবহৃত টাইমজোন। যদি বাদ দেওয়া হয়, send_date UTC-তে ব্যাখ্যা করা হয়। |
| apns_priority | Integer | ঐচ্ছিক | এই লাইভ অ্যাক্টিভিটি পুশের জন্য APNs ডেলিভারি প্রায়োরিটি নিয়ন্ত্রণ করে। 10 (হাই প্রায়োরিটি, লক করা স্ক্রিনে তাৎক্ষণিক রেন্ডারিংয়ের জন্য apns-priority: 10 হেডার সহ ডেলিভারি করা হয়) অথবা 5 (লো প্রায়োরিটি, ডিভাইসের ব্যাটারি সংরক্ষণের জন্য apns-priority: 5 সহ ডেলিভারি করা হয়) গ্রহণ করে। অন্য কোনো মান 5 হিসাবে বিবেচিত হয়, কোনো ভ্যালিডেশন এরর ছাড়াই। প্রতিটি লাইভ অ্যাক্টিভিটি পুশ ডিফল্টভাবে প্রায়োরিটি 5-এ থাকে, তা অ্যালার্ট কন্টেন্ট (content/title) বহন করুক বা না করুক — হাই-প্রায়োরিটি ডেলিভারির অনুরোধ করতে স্পষ্টভাবে apns_priority: 10 সেট করুন। নিচে টাইম সেনসিটিভ পুশ এবং ডেলিভারি প্রায়োরিটি দেখুন। |
দ্রষ্টব্য:
*contentঅথবাtitle-এর মধ্যে অন্তত একটি খালি থাকা যাবে না। Pushwoosh একটি স্টার্ট রিকোয়েস্ট প্রত্যাখ্যান করে যেখানে উভয়ই খালি থাকে।
রিকোয়েস্টের উদাহরণ
Anchor link to{ "request": { "application": "XXXXX-XXXXX", "auth": "SECRET_API_TOKEN", "notifications": [ { "content": "Your order is being prepared", "title": "Food Delivery", "apns_priority": 10, "live_activity": { "event": "start", "title": "Order status", "content-state": { "status": "Third", "estimatedTime": "37 min", "emoji": "👨🍳" }, "attributes-type": "FoodDeliveryAttributes", "attributes": {} }, "live_activity_id": "FIRST_LIVE_ACTIVITY", "filter": "FILTER_NAME_1" } ] }}{ "request": { "application": "XXXXX-XXXXX", "auth": "SECRET_API_TOKEN", "notifications": [ { "content": "Your order is being prepared", "title": "Food Delivery", "apns_priority": 10, "live_activity": { "event": "start", "title": "Order status", "content-state": { "status": "Third", "estimatedTime": "37 min", "emoji": "👨🍳" }, "attributes-type": "FoodDeliveryAttributes", "attributes": {} }, "live_activity_id": "SECOND_LIVE_ACTIVITY", "devices": ["first_third", "second_device"] } ] }}{ "request": { "application": "XXXXX-XXXXX", "auth": "SECRET_API_TOKEN", "notifications": [ { "content": "Your order is being prepared", "title": "Food Delivery", "live_activity": { "event": "start", "title": "Order status", "content-state": { "status": "Third", "estimatedTime": "37 min", "emoji": "👨🍳" }, "attributes-type": "FoodDeliveryAttributes", "attributes": {} }, "live_activity_id": "THIRD_LIVE_ACTIVITY", "filter": "FILTER_NAME_1", "send_date": "2026-06-16 16:00" } ] }}রেসপন্সের উদাহরণ
Anchor link to{ "status_code": 200, "status_message": "OK", "response": { "Messages": [ "XXXXX-XXXXXXXX-XXXXXXXX" ] }}দ্রষ্টব্য:
Pushwoosh iOS SDK ব্যবহার করে লাইভ অ্যাক্টিভিটিসের সাথে কাজ করার বিষয়ে আরও জানতে এই নিবন্ধটি পড়ুন।
updateLiveActivity
Anchor link toPOST https://api.pushwoosh.com/json/1.3/updateLiveActivity
iOS লাইভ অ্যাক্টিভিটিস আপডেট এবং শেষ করার অনুমতি দেয়।
রিকোয়েস্ট বডি
Anchor link to| প্যারামিটার | টাইপ | প্রয়োজনীয়/ঐচ্ছিক | বর্ণনা |
|---|---|---|---|
| auth | String | প্রয়োজনীয় | Pushwoosh কন্ট্রোল প্যানেল থেকে API অ্যাক্সেস টোকেন। |
| application | String | প্রয়োজনীয় | Pushwoosh অ্যাপ্লিকেশন কোড |
| notifications | Array | প্রয়োজনীয় | মেসেজ প্যারামিটারের JSON অ্যারে। বিস্তারিত নিচের নোটিফিকেশন টেবিলে দেখুন। |
নোটিফিকেশন
Anchor link tonotifications অ্যারেতে ব্যবহৃত প্যারামিটার:
| প্যারামিটার | টাইপ | প্রয়োজনীয়/ঐচ্ছিক | বর্ণনা |
|---|---|---|---|
| live_activity | Object | প্রয়োজনীয় | iOS-এ লাইভ অ্যাক্টিভিটি আপডেট করার জন্য লাইভ অ্যাক্টিভিটি ডেটা। |
| live_activity.event | String | প্রয়োজনীয় | ইভেন্টের টাইপ নির্দিষ্ট করে। লাইভ অ্যাক্টিভিটি আপডেট করতে "update" অথবা এটি বন্ধ করতে "end" ব্যবহার করুন। |
| live_activity.content-state | Object | প্রয়োজনীয় | কী-ভ্যালু পেয়ার সহ অবজেক্ট যা লাইভ অ্যাক্টিভিটির কন্টেন্ট আপডেট করার জন্য ডেটা পাস করতে ব্যবহৃত হয়। |
| live_activity.dismissal-date | Integer | ঐচ্ছিক | সময় (সেকেন্ডে) যখন লাইভ অ্যাক্টিভিটি শেষ হওয়া উচিত। একটি end-এ, এই ফিল্ডটি বাদ দিন যাতে কার্ডটি iOS নিজে থেকে সরিয়ে না দেওয়া পর্যন্ত তার সর্বশেষ content-state দেখাতে থাকে — নিচের নোটটি দেখুন। এর পরিবর্তে অতীতের একটি তারিখ সেট করুন যাতে এই আপডেট পৌঁছানোর সাথে সাথেই কার্ডটি সরিয়ে দেওয়া হয়। |
| live_activity_id | String | প্রয়োজনীয় | আপডেট করার জন্য লাইভ অ্যাক্টিভিটির ইউনিক আইডেন্টিফায়ার। startLiveActivity-তে ব্যবহৃত live_activity_id-এর সাথে মিলতে হবে। আপডেটটি সেই সমস্ত ডিভাইসে ডেলিভারি করা হবে যেখানে এই অ্যাক্টিভিটি শুরু হয়েছিল। |
| live_activity.relevance-score | Integer | ঐচ্ছিক | iOS সিস্টেমকে জানায় কোন লাইভ অ্যাক্টিভিটির প্রায়োরিটি অন্যদের চেয়ে বেশি। ১ থেকে অসীম পর্যন্ত মান গ্রহণ করে (১০০ পর্যন্ত মান সুপারিশ করা হয়)। |
| live_activity.stale-date | Integer | ঐচ্ছিক | সময় (সেকেন্ডে) যা সেই তারিখকে প্রতিনিধিত্ব করে যখন একটি লাইভ অ্যাক্টিভিটি পুরনো বা অচল হয়ে যায়। |
| apns_priority | Integer | ঐচ্ছিক | এই লাইভ অ্যাক্টিভিটি পুশের জন্য APNs ডেলিভারি প্রায়োরিটি নিয়ন্ত্রণ করে। 10 (হাই প্রায়োরিটি, লক করা স্ক্রিনে তাৎক্ষণিক রেন্ডারিংয়ের জন্য apns-priority: 10 হেডার সহ ডেলিভারি করা হয়) অথবা 5 (লো প্রায়োরিটি, ডিভাইসের ব্যাটারি সংরক্ষণের জন্য apns-priority: 5 সহ ডেলিভারি করা হয়) গ্রহণ করে। অন্য কোনো মান 5 হিসাবে বিবেচিত হয়, কোনো ভ্যালিডেশন এরর ছাড়াই। প্রতিটি লাইভ অ্যাক্টিভিটি পুশ ডিফল্টভাবে প্রায়োরিটি 5-এ থাকে, তা অ্যালার্ট কন্টেন্ট (content/title) বহন করুক বা না করুক — হাই-প্রায়োরিটি ডেলিভারির অনুরোধ করতে স্পষ্টভাবে apns_priority: 10 সেট করুন। নিচে টাইম সেনসিটিভ পুশ এবং ডেলিভারি প্রায়োরিটি দেখুন। |
| content | String | ঐচ্ছিক | এই আপডেটের জন্য অ্যালার্ট বডি। সাধারণ ক্ষেত্রে একটি কন্টেন্ট-স্টেট-অনলি আপডেট হয়, যা content, title, বা subtitle কোনোটিই সেট করে না এবং কোনো অ্যালার্ট বহন করে না। |
| title | String | ঐচ্ছিক | এই আপডেটের জন্য অ্যালার্ট টাইটেল। content, title, বা subtitle সেট করা একটি অ্যালার্ট ট্রিগার করে এবং ios_sound প্লে করতে দেয়। এই তিনটি সেট না থাকলে, আপডেটটি নীরব থাকে, যা কন্টেন্ট-স্টেট-অনলি আপডেটের জন্য ডিফল্ট। |
| subtitle | String | ঐচ্ছিক | এই আপডেটের জন্য অ্যালার্ট সাবটাইটেল। উপরের content/title-এর মতো একই অ্যালার্ট-ট্রিগারিং ভূমিকা। |
| ios_sound | String | ঐচ্ছিক | অ্যাপের প্রধান বান্ডেলে সাউন্ড ফাইলের নাম। এটি aps.alert-এর ভিতরে content/title/subtitle-এর সাথে থাকে, টপ-লেভেল aps.sound-এর সাথে নয়, যা ActivityKit লাইভ অ্যাক্টিভিটিসের জন্য উপেক্ষা করে, তাই এটি কেবল তখনই প্লে হয় যখন এই আপডেটটি সেই তিনটির মধ্যে অন্তত একটি সেট করে। iOS নিজেও লাইভ অ্যাক্টিভিটি অ্যালার্টগুলিকে রেট-লিমিট করে। একই পেলোড এক ডেলিভারিতে সাউন্ড সহ এবং পরেরটিতে সাউন্ড ছাড়া আসতে দেখা গেছে, ডিভাইস এবং সিমুলেটর উভয় ক্ষেত্রেই। |
দ্রষ্টব্য:
relevance-scoreশুধুমাত্র একই ডিভাইসে একাধিক সক্রিয় লাইভ অ্যাক্টিভিটিসের মধ্যে প্রদর্শনের ক্রমকে প্রভাবিত করে — এটি ডেলিভারির জরুরিতাকে প্রভাবিত করে না। একটি আপডেট কত দ্রুত ডেলিভারি করা হবে তা নিয়ন্ত্রণ করতেapns_priorityব্যবহার করুন।
রিকোয়েস্টের উদাহরণ
Anchor link to{ "request": { "application": "XXXXX-XXXXX", "auth": "SECRET_API_TOKEN", "notifications": [ { "apns_priority": 10, "title": "Live Activity Update", "live_activity": { "event": "update", "content-state": { "status": "second 66", "estimatedTime": "66 min", "emoji": "👨" }, "relevance-score": 60 }, "live_activity_id": "FIRST_LIVE_ACTIVITY" } ] }}রেসপন্সের উদাহরণ
Anchor link to{ "status_code": 200, "status_message": "OK", "response": { "Messages": [ "XXXXX-XXXXXXXX-XXXXXXXX" ] }}Pushwoosh iOS SDK ব্যবহার করে লাইভ অ্যাক্টিভিটিসের সাথে কাজ করার বিষয়ে আরও জানতে এই নিবন্ধটি পড়ুন।
টাইম সেনসিটিভ পুশ এবং ডেলিভারি প্রায়োরিটি
Anchor link toডিফল্টভাবে, Apple ব্যাটারি সংরক্ষণের জন্য লাইভ অ্যাক্টিভিটি আপডেটগুলি লো প্রায়োরিটিতে (apns-priority: 5) ডেলিভারি করে। যখন একটি ডিভাইস লক করা থাকে, তখন একটি লো-প্রায়োরিটি আপডেট ব্যাকগ্রাউন্ডে প্রসেস করা হয় এবং ব্যবহারকারী ডিভাইসটি আনলক করার পরেই লক স্ক্রিনে দৃশ্যমান হয়। একটি ইতিমধ্যে আনলক করা ডিভাইসে এটি এখনও তাৎক্ষণিকভাবে রেন্ডার করে। উপরে বর্ণিত apns_priority প্যারামিটার ব্যবহার করে হাই-প্রায়োরিটি (apns-priority: 10) ডেলিভারির অনুরোধ করুন যাতে আপডেটটি আনলক না করেই লক স্ক্রিনে অবিলম্বে রেন্ডার হয়।
এমনকি apns_priority: 10 উপলব্ধ থাকলেও, Apple এটি কতবার ব্যবহার করা যাবে তার উপর একটি সীমা আরোপ করে।
প্রতি ডিভাইসে একাধিক অ্যাক্টিভিটি
Anchor link toআপনি বিভিন্ন live_activity_id মান সহ startLiveActivity বেশ কয়েকবার কল করে একই ডিভাইসে একাধিক লাইভ অ্যাক্টিভিটি শুরু করতে পারেন।
উদাহরণস্বরূপ, যদি আপনি দুটি অ্যাক্টিভিটি শুরু করেন: FIRST_LIVE_ACTIVITY filter: FILTER_NAME_1 সহ এবং SECOND_LIVE_ACTIVITY filter: FILTER_NAME_2 সহ, একটি ডিভাইস যা উভয় ফিল্টারের সাথে মেলে, সেখানে উভয় অ্যাক্টিভিটি একই সাথে চলবে।
তাদের মধ্যে একটি আপডেট করতে, তার live_activity_id updateLiveActivity-তে পাস করুন। আপডেটটি সেই সমস্ত ডিভাইসে ডেলিভারি করা হয় যেখানে সেই অ্যাক্টিভিটি তৈরি হয়েছিল। অন্য অ্যাক্টিভিটি প্রভাবিত হয় না।
relevance-score প্যারামিটারটি ডিসপ্লে প্রায়োরিটি নিয়ন্ত্রণ করে যখন একই ডিভাইসে একাধিক লাইভ অ্যাক্টিভিটি সক্রিয় থাকে। যদি স্ক্রিনের জায়গা সীমিত থাকে বা অ্যাক্টিভিটিগুলি গ্রুপ করা হয়, তবে উচ্চতর মান সহ অ্যাক্টিভিটিটি উচ্চতর প্রায়োরিটি সহ দেখানো হয়।