মেসেজ এপিআই
createMessage
Anchor link toPOST https://api.pushwoosh.com/json/1.3/createMessage
একটি নতুন পুশ নোটিফিকেশন তৈরি করে।
অনুরোধের বডি
Anchor link to| নাম | প্রকার | বর্ণনা |
|---|---|---|
| auth* | string | Pushwoosh কন্ট্রোল প্যানেল থেকে API অ্যাক্সেস টোকেন। |
| application* | string | Pushwoosh অ্যাপ্লিকেশন কোড |
| notifications* | array | মেসেজ প্যারামিটারের JSON অ্যারে। নিচে একটি অনুরোধের উদাহরণে বিস্তারিত দেখুন। |
{ "status_code": 200, "status_message": "OK", "response": { "Messages": [ "C3F8-C3863ED4-334AD4F1" ] }}অনুরোধের উদাহরণ
Anchor link to{ "request": { "application": "XXXXX-XXXXX", // আবশ্যক। Pushwoosh অ্যাপ্লিকেশন কোড। "auth": "yxoPUlwqm…………pIyEX4H", // আবশ্যক। Pushwoosh কন্ট্রোল প্যানেল থেকে API অ্যাক্সেস টোকেন। "notifications": [{ "send_date": "now", // ঐচ্ছিক। YYYY-MM-DD HH:mm অথবা 'now' "content": { // ঐচ্ছিক। অবজেক্ট অথবা স্ট্রিং। "en": "English", // Windows-এর জন্য এর পরিবর্তে "wns_content" ব্যবহার করুন। "fr": "French" }, "title": { // ঐচ্ছিক। অবজেক্ট অথবা স্ট্রিং। "en": "Title", // প্ল্যাটফর্ম-নির্দিষ্ট শিরোনাম উল্লেখ করা হলে উপেক্ষা করা হয় "fr": "Titre" // 'ios_title', 'android_header', ইত্যাদি। }, // নিচে প্ল্যাটফর্ম-নির্দিষ্ট প্যারামিটারের উদাহরণ দেখুন। "subtitle":{ // ঐচ্ছিক। অবজেক্ট অথবা স্ট্রিং। "en": "Subtitle", // প্ল্যাটফর্ম-নির্দিষ্ট শিরোনাম উল্লেখ করা হলে উপেক্ষা করা হয় "fr": "Sous-titre" // 'ios_subtitle', ইত্যাদি। }, // নিচে প্ল্যাটফর্ম-নির্দিষ্ট প্যারামিটারের উদাহরণ দেখুন। "ignore_user_timezone": true, // ঐচ্ছিক। "timezone": "America/New_York", // ঐচ্ছিক। উপেক্ষা করা হলে "send_date"-এর জন্য ডিফল্ট UTC-0। // সমর্থিত টাইমজোনের জন্য https://php.net/manual/timezones.php দেখুন। "campaign": "CAMPAIGN_CODE", // ঐচ্ছিক। ক্যাম্পেইন কোড যেখানে আপনি এই পুশ মেসেজটি বরাদ্দ করতে চান। "geozone": { // ঐচ্ছিক। জিওজোনে পাঠান "lat": 22.22, "lng": 33.33, "range": 110 }, "rich_media": "XXXXX-XXXXX", // ঐচ্ছিক। Pushwoosh কন্ট্রোল প্যানেলের রিচ মিডিয়া এডিটর পেজের URL বার থেকে রিচ মিডিয়া কোডটি কপি করুন। "link": "https://google.com", // ঐচ্ছিক। ডীপলিংকের জন্য "minimize_link": 0 যোগ করুন "minimize_link": 0, // ঐচ্ছিক। 0 — ছোট করবেন না, 2 — bitly। ডিফল্ট = 2। // দয়া করে মনে রাখবেন যে শর্টনারগুলিতে কলের সংখ্যার উপর সীমাবদ্ধতা রয়েছে। "data": { // ঐচ্ছিক। JSON স্ট্রিং বা JSON অবজেক্ট, পেলোডে "u" প্যারামিটার হিসাবে পাস করা হবে (JSON স্ট্রিং-এ রূপান্তরিত)। "key": "value" }, "transactionId": "unique UUID", // ঐচ্ছিক। নেটওয়ার্ক সমস্যার ক্ষেত্রে ডুপ্লিকেট হওয়া রোধ করতে অনন্য মেসেজ শনাক্তকারী। // Pushwoosh-এর দিকে 5 মিনিটের জন্য সংরক্ষিত। "platforms": [ // ঐচ্ছিক। 1 — iOS; 3 — Android; 7 — Mac OS X; 8 — Windows; 1, 3, 7, 8, 9, 10, // 9 — Amazon; 10 — Safari; 11 — Chrome; 11, 12, 17 // 12 — Firefox; 17 — Huawei ], "preset": "XXXXX-XXXXX", // ঐচ্ছিক। আপনার কন্ট্রোল প্যানেল থেকে পুশ প্রিসেট কোড। // যদি অনুরোধে নির্দিষ্ট প্যারামিটার পাঠানো হয়, // তবে সেগুলি প্রিসেটের প্যারামিটারকে ওভাররাইড করে। "send_rate": 100, // ঐচ্ছিক। থ্রটলিং। বৈধ মান 100 থেকে 1000 পুশ/সেকেন্ড। "send_rate_avoid": true, // ঐচ্ছিক। যদি true সেট করা হয়, থ্রটলিং সীমা এই নির্দিষ্ট পুশ নোটিফিকেশনের জন্য প্রয়োগ করা হবে না। // টেমপ্লেটিং সম্পর্কিত, আরও জানতে টেমপ্লেট ইঞ্জিন গাইড দেখুন "template_bindings": { // ঐচ্ছিক। "TemplatePlaceholder": "Value" }, "dynamic_content_placeholders": { // ঐচ্ছিক। ডিভাইস ট্যাগের পরিবর্তে ডাইনামিক কন্টেন্টের জন্য প্লেসহোল্ডার। "firstname": "John", "lastname": "Doe" },
// ফ্রিকোয়েন্সি ক্যাপিং প্যারামিটার। কন্ট্রোল প্যানেলে গ্লোবাল ফ্রিকোয়েন্সি ক্যাপিং কনফিগার করা আছে তা নিশ্চিত করুন। "capping_days": 30, // ঐচ্ছিক। ফ্রিকোয়েন্সি ক্যাপিংয়ের জন্য দিনের সংখ্যা (সর্বোচ্চ 30 দিন) "capping_count": 10, // ঐচ্ছিক। একটি নির্দিষ্ট অ্যাপ থেকে একটি নির্দিষ্ট ডিভাইসে 'capping_days' সময়ের মধ্যে পাঠানো যেতে পারে এমন সর্বোচ্চ পুশের সংখ্যা। // যদি তৈরি করা মেসেজটি একটি ডিভাইসের জন্য 'capping_count' সীমা অতিক্রম করে, // তবে এটি সেই ডিভাইসে পাঠানো হবে না। "capping_exclude": true, // ঐচ্ছিক। যদি true সেট করা হয়, এই পুশ নোটিফিকেশনটি ভবিষ্যতের পুশের জন্য ক্যাপিংয়ের দিকে গণনা করা হবে না। "capping_avoid": true, // ঐচ্ছিক। যদি true সেট করা হয়, ক্যাপিং এই নির্দিষ্ট পুশ নোটিফিকেশনের জন্য প্রয়োগ করা হবে না।
// API-এর মাধ্যমে ইনবক্সে মেসেজ সংরক্ষণ করতে, "inbox_date" বা "inbox_image" ব্যবহার করুন। // এই প্যারামিটারগুলির মধ্যে অন্তত একটি ব্যবহার করা হলে মেসেজটি সংরক্ষিত হয়। "inbox_date": "2017-02-02", // ঐচ্ছিক। ইনবক্স থেকে একটি মেসেজ কখন সরাতে হবে তা উল্লেখ করুন। // নির্দিষ্ট তারিখের 00:00:01 UTC-তে মেসেজটি ইনবক্স থেকে সরানো হবে, // তাই আগের দিনটি শেষ দিন যখন একজন ব্যবহারকারী তাদের ইনবক্সে মেসেজটি দেখতে পারেন। // যদি উল্লেখ না করা হয়, ডিফল্ট অপসারণের তারিখ পাঠানোর তারিখের পরের দিন। "inbox_image": "Inbox image URL", // ঐচ্ছিক। মেসেজের পাশে দেখানো হবে এমন ছবি। "inbox_days": 5, // ঐচ্ছিক। ইনবক্স থেকে একটি মেসেজ কখন সরাতে হবে তা উল্লেখ করুন (একটি ইনবক্স মেসেজের জীবনকাল দিনে)। // "inbox_date" প্যারামিটারের পরিবর্তে ব্যবহার করা যেতে পারে। // 30 দিন পর্যন্ত।
"devices": [ // ঐচ্ছিক। টার্গেটেড পুশ পাঠানোর জন্য টোকেন বা hwid উল্লেখ করুন "hwid_XXXX" // নোটিফিকেশন। একটি অ্যারেতে 1000-এর বেশি টোকেন/hwid নয়। ], // যদি সেট করা হয়, মেসেজটি শুধুমাত্র তালিকার ডিভাইসগুলিতে পাঠানো হবে। // ডিভাইস তালিকার জন্য অ্যাপ্লিকেশন গ্রুপ অনুমোদিত নয়। iOS পুশ টোকেন শুধুমাত্র ছোট হাতের হতে পারে। "to": [ // ঐচ্ছিক। ইমেল, এসএমএস এবং অনুরূপ চ্যানেলগুলির জন্য। প্রাপকদের তালিকা "email_1", "email_2" // (যেমন ইমেল ঠিকানা, ফোন নম্বর)। সর্বোচ্চ 1000 আইটেম। ], // পুশের জন্য, এর পরিবর্তে "devices" ব্যবহার করুন। // ব্যবহারকারী-কেন্দ্রিক পুশ নোটিফিকেশন "users": [ // ঐচ্ছিক। যদি সেট করা হয়, মেসেজটি শুধুমাত্র নির্দিষ্ট ব্যবহারকারী আইডিগুলিতে বিতরণ করা হবে (/registerUser কলের মাধ্যমে সেট করা)। "user_XXXX" ], // যদি ডিভাইস বা to-এর সাথে একসাথে উল্লেখ করা হয়, // তবে পরেরটি উপেক্ষা করা হবে। একটি অ্যারেতে 1000-এর বেশি ব্যবহারকারী আইডি নয়। // ব্যবহারকারী তালিকার জন্য অ্যাপ্লিকেশন গ্রুপ অনুমোদিত নয়।
// ফিল্টার এবং শর্ত "filter": "FILTER_NAME", // ঐচ্ছিক। "conditions": [ // ঐচ্ছিক। নিচের মন্তব্য দেখুন। ["Country", "EQ", "fr"], ["Language", "EQ", "en"] ], "conditions_operator": "AND" // ঐচ্ছিক। শর্ত অ্যারেগুলির জন্য লজিক্যাল অপারেটর। // সম্ভাব্য মান: AND | OR। AND ডিফল্ট। }] }}VoIP নোটিফিকেশন অনুরোধের উদাহরণ
Anchor link toPushwoosh iOS এবং Android-এর জন্য VoIP-স্টাইল কল নোটিফিকেশন সমর্থন করে।
নিচে আপনি প্রতিটি প্ল্যাটফর্মের জন্য API createMessage অনুরোধের উদাহরণ খুঁজে পেতে পারেন।
{ "request": { "application": "XXXXX-XXXXX", // আবশ্যক। Pushwoosh অ্যাপ্লিকেশন কোড। "auth": "yxoPUlwqm…………pIyEX4H", // আবশ্যক। Pushwoosh কন্ট্রোল প্যানেল থেকে API অ্যাক্সেস টোকেন। "notifications": [ { "voip_push": true, // আবশ্যক। একটি VoIP পুশ নোটিফিকেশন পাঠানোর জন্য প্যারামিটারটি আবশ্যক। "ios_root_params": { "aps": { "mutable-content": 1 // iOS10+ মিডিয়া অ্যাটাচমেন্টের জন্য আবশ্যক। }, "callerName": "CallerName", // ঐচ্ছিক। কলারের নাম। যদি উল্লেখ না করা হয়, "unknown caller" দেখানো হয়। "video": true, // ঐচ্ছিক। ভিডিও কল সমর্থিত কিনা তা নির্দেশ করে। "supportsHolding": true, // ঐচ্ছিক। কল হোল্ডিং কার্যকারিতা সমর্থিত কিনা তা নির্দেশ করে। "supportsDTMF": false, // ঐচ্ছিক। ডুয়াল-টোন মাল্টি-ফ্রিকোয়েন্সি সিগন্যাল সমর্থন নিয়ন্ত্রণ করে। "callId": "42", // ঐচ্ছিক। বাতিল করার জন্য কলের অনন্য শনাক্তকারী। "cancelCall": true // ঐচ্ছিক। নির্দিষ্ট "callId" সহ কলটি বাতিল করতে "true" সেট করুন। } } ] }}Android
Anchor link to{ "request": { "application": "XXXXX-XXXXX", // আবশ্যক। Pushwoosh অ্যাপ্লিকেশন কোড। "auth": "yxoPUlwqm…………pIyEX4H", // আবশ্যক। Pushwoosh কন্ট্রোল প্যানেল থেকে API অ্যাক্সেস টোকেন। "notifications": [ { "voip_push": true, // আবশ্যক। একটি VoIP পুশ নোটিফিকেশন পাঠানোর জন্য প্যারামিটারটি আবশ্যক। "android_root_params": { "callerName": "callerName", // ঐচ্ছিক। কলারের নাম। যদি উল্লেখ না করা হয়, "unknown caller" দেখানো হয়। "video": true, // ঐচ্ছিক। ভিডিও কল সমর্থিত কিনা তা নির্দেশ করে। "callId": 42, // ঐচ্ছিক। বাতিল করার জন্য কলের অনন্য শনাক্তকারী। "cancelCall": true // ঐচ্ছিক। নির্দিষ্ট "callId" সহ কলটি বাতিল করতে "true" সেট করুন। } } ] }}প্ল্যাটফর্ম-নির্দিষ্ট প্যারামিটার
Anchor link toiOS প্যারামিটার
Anchor link to{ "request": { "application": "12345-67891", // আবশ্যক। Pushwoosh অ্যাপ্লিকেশন কোড "auth": "yxoPUlwqm…………pIyEX4H", // আবশ্যক। Pushwoosh কন্ট্রোল প্যানেল থেকে API অ্যাক্সেস টোকেন "notifications": [{ "ios_title": { // ঐচ্ছিক। অবজেক্ট অথবা স্ট্রিং। পুশ নোটিফিকেশনের জন্য iOS নির্দিষ্ট শিরোনাম যোগ করে। "en": "title" }, "ios_subtitle": { // ঐচ্ছিক। অবজেক্ট অথবা স্ট্রিং। পুশ নোটিফিকেশনের জন্য iOS নির্দিষ্ট সাবটাইটেল যোগ করে। "en": "subtitle" }, "ios_content": { // ঐচ্ছিক। অবজেক্ট অথবা স্ট্রিং। পুশ নোটিফিকেশনের জন্য iOS নির্দিষ্ট কন্টেন্ট যোগ করে। "en": "content" }, "ios_badges": 5, // ঐচ্ছিক। iOS অ্যাপ্লিকেশন ব্যাজ নম্বর। // ব্যাজ মান n দ্বারা বৃদ্ধি/হ্রাস করতে "+n" বা "-n" ব্যবহার করুন। "ios_sound": "sound file.wav", // ঐচ্ছিক। অ্যাপ্লিকেশনের প্রধান বান্ডেলে সাউন্ড ফাইলের নাম। // যদি খালি রাখা হয়, ডিভাইসটি একটি ডিফল্ট সিস্টেম সাউন্ড তৈরি করবে। "ios_sound_off": true, // ঐচ্ছিক। "ios_sound" ফিল্ড দ্বারা সেট করা সাউন্ড সক্রিয়/নিষ্ক্রিয় করুন। "ios_ttl": 3600, // ঐচ্ছিক। টাইম টু লিভ প্যারামিটার - সেকেন্ডে সর্বোচ্চ মেসেজ জীবনকাল। "ios_silent": 1, // ঐচ্ছিক। সাইলেন্ট নোটিফিকেশন সক্রিয় করে ("sound" এবং "content" উপেক্ষা করে)। "ios_category_id": "1", // ঐচ্ছিক। Pushwoosh থেকে iOS8 ক্যাটাগরি আইডি। "ios_root_params": { // ঐচ্ছিক। aps ডিকশনারিতে রুট লেভেল প্যারামিটার। "aps": { "content-available": "0", // ঐচ্ছিক। একটি সাইলেন্ট পুশ পাঠাতে "1" এবং নিয়মিত পুশের জন্য "0" সেট করুন। "mutable-content": 1 // iOS10+ মিডিয়া অ্যাটাচমেন্টের জন্য আবশ্যক। }, "callerName": "CallerName", // ঐচ্ছিক VoIP প্যারামিটার। কলারের নাম। যদি উল্লেখ না করা হয়, "unknown caller" দেখানো হয়। "video": true, // ঐচ্ছিক VoIP প্যারামিটার। ভিডিও কল সমর্থিত কিনা তা নির্দেশ করে। "supportsHolding": true, // ঐচ্ছিক VoIP প্যারামিটার। কল হোল্ডিং কার্যকারিতা সমর্থিত কিনা তা নির্দেশ করে। "supportsDTMF": false, // ঐচ্ছিক VoIP প্যারামিটার। ডুয়াল-টোন মাল্টি-ফ্রিকোয়েন্সি সিগন্যাল সমর্থন নিয়ন্ত্রণ করে। "data": {} // ঐচ্ছিক ব্যবহারকারী সরবরাহকৃত ডেটা, সর্বোচ্চ 4KB }, "ios_attachment": "URL", // ঐচ্ছিক। নোটিফিকেশনে মিডিয়া কন্টেন্ট সন্নিবেশ করান। "ios_thread_id": "some thread id", // ঐচ্ছিক। সম্পর্কিত নোটিফিকেশন গ্রুপ করার জন্য শনাক্তকারী। // একই থ্রেড আইডি সহ মেসেজগুলি লক স্ক্রিনে এবং নোটিফিকেশন সেন্টারে গ্রুপ করা হবে। "ios_critical": true, // ঐচ্ছিক। iOS নোটিফিকেশনকে একটি ক্রিটিক্যাল অ্যালার্ট হিসাবে চিহ্নিত করে // যা ডিভাইস মিউট থাকলেও বা ডু নট ডিস্টার্ব মোড চালু থাকলেও সাউন্ড বাজায়। "ios_category_custom": "category", // ঐচ্ছিক। কাস্টম APNS ক্যাটাগরি। "ios_interruption_level": "active", // ঐচ্ছিক। "passive", "active", "time-sensitive", "critical" এর মধ্যে একটি। // একটি নোটিফিকেশনের গুরুত্ব এবং ডেলিভারি সময় নির্দেশ করে। // বিস্তারিত জানতে ওয়ান-টাইম পুশ গাইড দেখুন। "apns_trim_content": 1 // ঐচ্ছিক। (0|1) অতিরিক্ত কন্টেন্ট স্ট্রিংগুলিকে এলিপসিস দিয়ে ট্রিম করে। }] }}Android প্যারামিটার
Anchor link to{ "request": { "application": "12345-67891", // আবশ্যক। Pushwoosh অ্যাপ্লিকেশন কোড "auth": "yxoPUlwqm…………pIyEX4H", // আবশ্যক। Pushwoosh কন্ট্রোল প্যানেল থেকে API অ্যাক্সেস টোকেন "notifications": [{ "android_header": { // ঐচ্ছিক। Android নোটিফিকেশন হেডার। "en": "header" }, "android_content": { // ঐচ্ছিক। Android নোটিফিকেশন কন্টেন্ট। "en": "content" }, "android_root_params": { // ঐচ্ছিক। কাস্টম কী-ভ্যালু অবজেক্ট। "key": "value", // অ্যান্ড্রয়েড পেলোড প্রাপকদের জন্য রুট লেভেল প্যারামিটার। "CancelID": 12345678, // ঐচ্ছিক। নির্দিষ্ট মেসেজ আইডি সহ পুশ নোটিফিকেশন বাতিল করে (মেসেজ হিস্ট্রি থেকে আইডি পান) "voip": true, // আবশ্যক VoIP প্যারামিটার। VoIP পুশ নোটিফিকেশন পাঠানোর জন্য প্যারামিটারটি আবশ্যক। "callerName": "callerName", // ঐচ্ছিক VoIP প্যারামিটার। কলারের নাম। যদি উল্লেখ না করা হয়, "unknown caller" দেখানো হয়। "video": true, // ঐচ্ছিক VoIP প্যারামিটার। ভিডিও কল সমর্থিত কিনা তা নির্দেশ করে। }, "android_sound": "soundfile", // ঐচ্ছিক। ফাইল এক্সটেনশন নেই। যদি খালি রাখা হয়, // ডিভাইসটি একটি ডিফল্ট সিস্টেম সাউন্ড তৈরি করবে। "android_sound_off": true, // ঐচ্ছিক। "android_sound" ফিল্ড দ্বারা সেট করা সাউন্ড সক্রিয়/নিষ্ক্রিয় করুন "android_icon": "icon.png", // ঐচ্ছিক। "android_custom_icon": "URL.png", // ঐচ্ছিক। ইমেজ ফাইলের সম্পূর্ণ URL। "android_banner": "URL.png", // ঐচ্ছিক। ইমেজ ফাইলের সম্পূর্ণ URL। "android_badges": 5, // ঐচ্ছিক। Android অ্যাপ্লিকেশন আইকন ব্যাজ নম্বর। // ব্যাজ মান n দ্বারা বৃদ্ধি/হ্রাস করতে "+n" বা "-n" ব্যবহার করুন। "android_gcm_ttl": 3600, // ঐচ্ছিক। টাইম টু লিভ প্যারামিটার — সেকেন্ডে সর্বোচ্চ মেসেজ জীবনকাল। "android_vibration": 0, // ঐচ্ছিক। উচ্চ-অগ্রাধিকার পুশের জন্য Android ফোর্স-ভাইব্রেশন। "android_led": "#rrggbb", // ঐচ্ছিক। LED হেক্স রঙ, ডিভাইস তার সেরা অনুমান করবে। "android_priority": -1, // ঐচ্ছিক। Android 8.0 এবং উচ্চতর ডিভাইসগুলির জন্য "importance" প্যারামিটার এবং Android 7.1 এবং নিম্নতর ডিভাইসগুলির জন্য "priority" প্যারামিটার সেট করে। // একটি নোটিফিকেশন চ্যানেল বা একটি নির্দিষ্ট নোটিফিকেশনের ইন্টারাপশন লেভেল স্থাপন করে। // বৈধ মানগুলি হল -2, -1, 0, 1, 2। "android_delivery_priority": "normal", // ঐচ্ছিক। "normal" বা "high"। // ডিভাইস পাওয়ার সেভিং মোডে থাকাকালীন নোটিফিকেশন ডেলিভারি সক্ষম করে। "android_ibc": "#RRGGBB", // ঐচ্ছিক। ললিপপে আইকন ব্যাকগ্রাউন্ড রঙ, #RRGGBB, // #AARRGGBB, "red", "black", "yellow", ইত্যাদি। "android_silent": 1, // ঐচ্ছিক। 0 বা 1। সাইলেন্ট নোটিফিকেশন সক্ষম করুন। // সাউন্ড এবং কন্টেন্ট উপেক্ষা করুন "android_group_id": "123" // ঐচ্ছিক। সম্পর্কিত নোটিফিকেশন গ্রুপ করার জন্য শনাক্তকারী। একই থ্রেড আইডি সহ মেসেজগুলি নোটিফিকেশন সেন্টারে গ্রুপ করা হবে। }] }}Huawei প্যারামিটার
{ "request": { "application": "12345-67891", // আবশ্যক। Pushwoosh অ্যাপ্লিকেশন কোড "auth": "yxoPUlwqm…………pIyEX4H", // আবশ্যক। Pushwoosh কন্ট্রোল প্যানেল থেকে API অ্যাক্সেস টোকেন "notifications": [{ "huawei_android_header": { // ঐচ্ছিক। অবজেক্ট অথবা স্ট্রিং। নোটিফিকেশন শিরোনাম "en": "header" }, "huawei_android_content": { // ঐচ্ছিক। অবজেক্ট অথবা স্ট্রিং। নোটিফিকেশন কন্টেন্ট "en": "content" }, "huawei_android_badges": true, // ঐচ্ছিক। "huawei_android_silent": 0, // ঐচ্ছিক। 0 বা 1। সাইলেন্ট নোটিফিকেশন সক্ষম করুন। // সাউন্ড এবং কন্টেন্ট উপেক্ষা করুন "huawei_android_icon": "URL.png", // ঐচ্ছিক। "huawei_android_led": "#FF0011", // ঐচ্ছিক। LED হেক্স রঙ, ডিভাইস তার সেরা অনুমান করবে "huawei_android_vibration": 1, // ঐচ্ছিক। উচ্চ-অগ্রাধিকার পুশের জন্য Huawei ফোর্স-ভাইব্রেশন "huawei_android_sound": "sound.wav", // ঐচ্ছিক। যদি খালি রাখা হয়, ডিভাইসটি একটি ডিফল্ট সিস্টেম সাউন্ড তৈরি করবে "huawei_android_sound_off": true, // ঐচ্ছিক। "huawei_android_sound" ফিল্ড দ্বারা সেট করা সাউন্ড সক্রিয়/নিষ্ক্রিয় করুন "huawei_android_custom_icon": "URL.png", // ঐচ্ছিক "huawei_android_gcm_ttl": 2400, // ঐচ্ছিক। টাইম টু লিভ প্যারামিটার - সেকেন্ডে সর্বোচ্চ মেসেজ জীবনকাল "huawei_android_banner": "URL.png", // ঐচ্ছিক। ইমেজ ফাইলের সম্পূর্ণ পাথ URL "huawei_android_root_params": { // ঐচ্ছিক। কাস্টম কী-ভ্যালু অবজেক্ট। "key": "value" // Huawei পেলোড প্রাপকদের জন্য রুট-লেভেল প্যারামিটার। }, "huawei_android_priority": 0, // ঐচ্ছিক। বৈধ মান: -2, -1, 0, 1, 2 "huawei_android_ibc": "#0011AA", // ঐচ্ছিক। ললিপপে আইকন ব্যাকগ্রাউন্ড রঙ "huawei_android_lockscreen": 1, // ঐচ্ছিক "huawei_android_delivery_priority": "normal", // ঐচ্ছিক। "normal" বা "high"। পাওয়ার সেভিং মোডে নোটিফিকেশন ডেলিভারি সক্ষম করে "huawei_android_group_id": "group_id" // ঐচ্ছিক। সম্পর্কিত নোটিফিকেশন গ্রুপ করার জন্য শনাক্তকারী }] }}Safari প্যারামিটার
Anchor link to{ "request": { "application": "12345-67891", // আবশ্যক। Pushwoosh অ্যাপ্লিকেশন কোড "auth": "yxoPUlwqm…………pIyEX4H", // আবশ্যক। Pushwoosh কন্ট্রোল প্যানেল থেকে API অ্যাক্সেস টোকেন "notifications": [{ "safari_url_args": [ // আবশ্যক, কিন্তু মান খালি হতে পারে "firstArgument", "secondArgument" ], "safari_title": { // ঐচ্ছিক। অবজেক্ট অথবা স্ট্রিং। নোটিফিকেশনের শিরোনাম। "en": "content" }, "safari_content": { // ঐচ্ছিক। অবজেক্ট অথবা স্ট্রিং। নোটিফিকেশনের কন্টেন্ট। "en": "content" }, "safari_action": "Click here", // ঐচ্ছিক। "safari_ttl": 3600 // ঐচ্ছিক। টাইম টু লিভ প্যারামিটার — সেকেন্ডে একটি মেসেজের সর্বোচ্চ জীবনকাল। }] }}Chrome প্যারামিটার
Anchor link to{ "request": { "application": "12345-67891", // আবশ্যক। Pushwoosh অ্যাপ্লিকেশন কোড "auth": "yxoPUlwqm…………pIyEX4H", // আবশ্যক। Pushwoosh কন্ট্রোল প্যানেল থেকে API অ্যাক্সেস টোকেন "notifications": [{ "chrome_title": { // ঐচ্ছিক। অবজেক্ট অথবা স্ট্রিং। আপনি এই প্যারামিটারে মেসেজের হেডার উল্লেখ করতে পারেন। "en": "title" }, "chrome_content": { // ঐচ্ছিক। অবজেক্ট অথবা স্ট্রিং। আপনি এই প্যারামিটারে মেসেজের কন্টেন্ট উল্লেখ করতে পারেন। "en": "content" }, "chrome_icon": "URL.png", // ঐচ্ছিক। আইকনের সম্পূর্ণ URL বা এক্সটেনশন রিসোর্স ফাইল পাথ "chrome_gcm_ttl": 3600, // ঐচ্ছিক। টাইম টু লিভ প্যারামিটার – সেকেন্ডে সর্বোচ্চ মেসেজ জীবনকাল। "chrome_duration": 20, // ঐচ্ছিক। সর্বোচ্চ 50 সেকেন্ড। ক্রোম পুশ প্রদর্শনের সময় পরিবর্তন করে। // ব্যবহারকারী ইন্টারঅ্যাক্ট না করা পর্যন্ত পুশ প্রদর্শন করতে 0 সেট করুন। "chrome_image": "image_URL", // ঐচ্ছিক। বড় ইমেজের URL। "chrome_root_params": { // ঐচ্ছিক। ক্রোমে পাঠানো মেসেজের জন্য নির্দিষ্ট প্যারামিটার সেট করুন। "key": "value" }, "chrome_button_text1": "text1", // ঐচ্ছিক "chrome_button_url1": "button1_URL", // ঐচ্ছিক। chrome_button_text1 সেট না থাকলে উপেক্ষা করা হয়। "chrome_button_text2": "text2", // ঐচ্ছিক "chrome_button_url2": "button2_url" // ঐচ্ছিক। chrome_button_text2 সেট না থাকলে উপেক্ষা করা হয়। }] }}Firefox প্যারামিটার
Anchor link to{ "request": { "application": "12345-67891", // আবশ্যক। Pushwoosh অ্যাপ্লিকেশন কোড "auth": "yxoPUlwqm…………pIyEX4H", // আবশ্যক। Pushwoosh কন্ট্রোল প্যানেল থেকে API অ্যাক্সেস টোকেন "notifications": [{ "firefox_title": { // ঐচ্ছিক। অবজেক্ট অথবা স্ট্রিং। আপনি এখানে মেসেজ হেডার উল্লেখ করতে পারেন। "en": "title" }, "firefox_content": { // ঐচ্ছিক। অবজেক্ট অথবা স্ট্রিং। আপনি এখানে মেসেজ কন্টেন্ট উল্লেখ করতে পারেন। "en": "content" }, "firefox_icon": "URL.png", // ঐচ্ছিক। আইকনের সম্পূর্ণ পাথ URL বা এক্সটেনশন রিসোর্সে ফাইলের পাথ। "firefox_root_params": { // ঐচ্ছিক। ফায়ারফক্সে পাঠানো মেসেজের জন্য নির্দিষ্ট প্যারামিটার সেট করুন। "key": "value" } }] }}Amazon প্যারামিটার
Anchor link to{ "request": { "application": "12345-67891", // আবশ্যক। Pushwoosh অ্যাপ্লিকেশন কোড "auth": "yxoPUlwqm…………pIyEX4H", // আবশ্যক। Pushwoosh কন্ট্রোল প্যানেল থেকে API অ্যাক্সেস টোকেন "notifications": [{ "adm_header": { // ঐচ্ছিক। অবজেক্ট অথবা স্ট্রিং। আপনি এখানে মেসেজ হেডার উল্লেখ করতে পারেন। "en": "header" }, "adm_content": { // ঐচ্ছিক। অবজেক্ট অথবা স্ট্রিং। আপনি এখানে মেসেজ কন্টেন্ট উল্লেখ করতে পারেন। "en": "content" }, "adm_root_params": { // ঐচ্ছিক। কাস্টম কী-ভ্যালু অবজেক্ট "key": "value" }, "adm_sound": "push.mp3", // ঐচ্ছিক। "adm_sound_off": true, // ঐচ্ছিক। "adm_sound" ফিল্ড দ্বারা সেট করা সাউন্ড সক্রিয়/নিষ্ক্রিয় করুন "adm_icon": "icon.png", // ঐচ্ছিক। আইকনের সম্পূর্ণ URL। "adm_custom_icon": "URL.png", // ঐচ্ছিক। "adm_banner": "URL.png", // ঐচ্ছিক। "adm_ttl": 3600, // ঐচ্ছিক। টাইম টু লিভ প্যারামিটার — সেকেন্ডে সর্বোচ্চ মেসেজ জীবনকাল। "adm_priority": -1 // ঐচ্ছিক। অ্যামাজন পুশ ড্রয়ারে পুশের অগ্রাধিকার, // বৈধ মানগুলি হল -2, -1, 0, 1 এবং 2। }] }}Mac OS X প্যারামিটার
Anchor link to{ "request": { "application": "12345-67891", // আবশ্যক। Pushwoosh অ্যাপ্লিকেশন কোড "auth": "yxoPUlwqm…………pIyEX4H", // আবশ্যক। Pushwoosh কন্ট্রোল প্যানেল থেকে API অ্যাক্সেস টোকেন "notifications": [{ "mac_title": { // ঐচ্ছিক। অবজেক্ট অথবা স্ট্রিং। পুশ নোটিফিকেশনের জন্য শিরোনাম যোগ করে। "en": "title" }, "mac_subtitle": { // ঐচ্ছিক। পুশ নোটিফিকেশনের জন্য সাবটাইটেল যোগ করে। "en": "subtitle" }, "mac_content": { // ঐচ্ছিক। পুশ নোটিফিকেশনের জন্য কন্টেন্ট যোগ করে। "en": "content" }, "mac_badges": 3, // ঐচ্ছিক। "mac_sound": "sound.caf", // ঐচ্ছিক। "mac_sound_off": true, // ঐচ্ছিক। "mac_sound" ফিল্ড দ্বারা সেট করা সাউন্ড সক্রিয়/নিষ্ক্রিয় করুন "mac_root_params": { // ঐচ্ছিক। "content-available": 1 }, "mac_ttl": 3600 // ঐচ্ছিক। টাইম টু লিভ প্যারামিটার — সেকেন্ডে সর্বোচ্চ মেসেজ জীবনকাল। }] }}Windows প্যারামিটার
Anchor link to{ "request": { "application": "12345-67891", // আবশ্যক। Pushwoosh অ্যাপ্লিকেশন কোড "auth": "yxoPUlwqm…………pIyEX4H", // আবশ্যক। Pushwoosh কন্ট্রোল প্যানেল থেকে API অ্যাক্সেস টোকেন "notifications": [{ "wns_content": { // আবশ্যক। MIME-এর base64-এ এনকোড করা নোটিফিকেশনের কন্টেন্ট (XML বা raw) // অবজেক্ট অথবা স্ট্রিং আকারে "en": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48YmFkZ2UgdmFsdWU9ImF2YWlsYWJsZSIvPg==", "de": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48YmFkZ2UgdmFsdWU9Im5ld01lc3NhZ2UiLz4=" }, "wns_type": "Badge", // ঐচ্ছিক। 'Tile' | 'Toast' | 'Badge' | 'Raw' "wns_tag": "myTag", // ঐচ্ছিক। টাইল রিপ্লেসমেন্ট নীতিতে ব্যবহৃত। // 16 অক্ষরের বেশি নয় এমন একটি আলফানিউমেরিক স্ট্রিং। "wns_cache": 1, // ঐচ্ছিক। (1|0) X-WNS-Cache-Policy মানে অনুবাদ করে। "wns_ttl": 600 // ঐচ্ছিক। সেকেন্ডে নোটিফিকেশনের মেয়াদ শেষ হওয়ার সময়। }] }}প্রতিক্রিয়া:
| HTTP স্ট্যাটাস কোড | status_code | বর্ণনা |
|---|---|---|
| 200 | 200 | মেসেজ সফলভাবে তৈরি হয়েছে |
| 200 | 210 | আর্গুমেন্ট ত্রুটি। আরও তথ্যের জন্য status_message দেখুন |
| 400 | N/A | ত্রুটিপূর্ণ অনুরোধ স্ট্রিং |
| 500 | 500 | অভ্যন্তরীণ ত্রুটি |
API মেসেজিং ট্রেসিং
Anchor link toলোড ব্যালেন্সিংয়ের উদ্দেশ্যে, আমরা “devices” প্যারামিটার সহ API-এর মাধ্যমে পাঠানো মেসেজগুলি সংরক্ষণ করি না যা একটি অ্যারেতে 10টির কম ডিভাইস ধারণ করে। এর কারণে, এই ধরনের মেসেজগুলি আপনার মেসেজ হিস্ট্রিতে প্রদর্শিত হবে না।
পরীক্ষার পর্যায়ে পুশ রিপোর্ট দেখতে, API মেসেজিং ট্রেসিং ব্যবহার করুন। এই বিকল্পটি ON করা আপনাকে 1 ঘন্টার জন্য এই সীমাটি ওভাররাইড করতে এবং এই ধরনের পুশগুলি মেসেজ হিস্ট্রিতে সংরক্ষণ করতে দেয়। API মেসেজিং ট্রেসিং 1 ঘন্টা পরে স্বয়ংক্রিয়ভাবে OFF হয়ে যায়।
API মেসেজিং ট্রেসিং মেসেজ হিস্ট্রি পৃষ্ঠা থেকে উপরের ডান কোণায় Start API messaging tracing ক্লিক করে সক্রিয় করা যেতে পারে।
ট্যাগ শর্তাবলী
Anchor link toপ্রতিটি ট্যাগ শর্ত একটি অ্যারে যেমন [tagName, operator, operand] যেখানে
- tagName: একটি ট্যাগের নাম
- operator: “EQ” | “IN” | “NOTEQ” | “NOTIN” | “LTE” | “GTE” | “BETWEEN” | “NOTSET” | “ANY”
- operand: string | integer | array | date
অপারেটরের বর্ণনা
Anchor link to- EQ: ট্যাগ মান অপারেন্ডের সমান;
- IN: ট্যাগ মান অপারেন্ডের সাথে ছেদ করে (অপারেন্ড সবসময় একটি অ্যারে হতে হবে);
- NOTEQ: ট্যাগ মান একটি অপারেন্ডের সমান নয়;
- NOTIN: ট্যাগ মান অপারেন্ডের সাথে ছেদ করে না (অপারেন্ড সবসময় একটি অ্যারে হতে হবে);
- GTE: ট্যাগ মান অপারেন্ডের চেয়ে বড় বা সমান;
- LTE: ট্যাগ মান অপারেন্ডের চেয়ে ছোট বা সমান;
- BETWEEN: ট্যাগ মান সর্বনিম্ন অপারেন্ড মানের চেয়ে বড় বা সমান কিন্তু সর্বোচ্চ অপারেন্ড মানের চেয়ে ছোট বা সমান (অপারেন্ড সবসময় একটি অ্যারে হতে হবে);
- NOTSET: ট্যাগ সেট করা নেই। অপারেন্ড বিবেচনা করা হয় না;
- ANY: ট্যাগের যেকোনো মান আছে। অপারেন্ড বিবেচনা করা হয় না।
স্ট্রিং ট্যাগ
Anchor link toবৈধ অপারেটর: EQ, IN, NOTEQ, NOTIN, NOTSET, ANY
বৈধ অপারেন্ড:
- EQ, NOTEQ: অপারেন্ড একটি স্ট্রিং হতে হবে;
- IN, NOTIN: অপারেন্ড স্ট্রিংগুলির একটি অ্যারে হতে হবে যেমন
["value 1", "value 2", "value N"]; - NOTSET: ট্যাগ সেট করা নেই। অপারেন্ড বিবেচনা করা হয় না;
- ANY: ট্যাগের যেকোনো মান আছে। অপারেন্ড বিবেচনা করা হয় না।
ইন্টিজার ট্যাগ
Anchor link toবৈধ অপারেটর: EQ, IN, NOTEQ, NOTIN, BETWEEN, GTE, LTE, NOTSET, ANY
বৈধ অপারেন্ড:
- EQ, NOTEQ, GTE, LTE: অপারেন্ড একটি পূর্ণসংখ্যা হতে হবে;
- IN, NOTIN: অপারেন্ড পূর্ণসংখ্যার একটি অ্যারে হতে হবে যেমন
[value 1, value 2, value N]; - BETWEEN: অপারেন্ড পূর্ণসংখ্যার একটি অ্যারে হতে হবে যেমন
[min_value, max_value]; - NOTSET: ট্যাগ সেট করা নেই। অপারেন্ড বিবেচনা করা হয় না;
- ANY: ট্যাগের যেকোনো মান আছে। অপারেন্ড বিবেচনা করা হয় না।
তারিখ ট্যাগ
Anchor link toবৈধ অপারেটর: EQ, IN, NOTEQ, NOTIN, BETWEEN, GTE, LTE, NOTSET, ANY
বৈধ অপারেন্ড:
"YYYY-MM-DD 00:00"(স্ট্রিং)- ইউনিক্স টাইমস্ট্যাম্প
1234567890(পূর্ণসংখ্যা) "N days ago"(স্ট্রিং) EQ, BETWEEN, GTE, LTE অপারেটরদের জন্য
বুলিয়ান ট্যাগ
Anchor link toবৈধ অপারেটর: EQ, NOTSET, ANY
বৈধ অপারেন্ড: 0, 1, true, false
তালিকা ট্যাগ
Anchor link toবৈধ অপারেটর: IN, NOTIN, NOTSET, ANY
বৈধ অপারেন্ড: অপারেন্ড স্ট্রিংগুলির একটি অ্যারে হতে হবে যেমন ["value 1", "value 2", "value N"]।
/createMessage স্নিপেট
Anchor link toনমুনা /createMessage অনুরোধ:
#!/bin/bash
#Usageif [ ! -n "$1" ] || [ ! -n "$2" ]then echo "`basename $0` usage: api_token appid message"; exit 1;fi;MESSAGE="$3";if [ -z "$3" ]thenMESSAGE='One push to rule them all!'fi;
echo -e "Response:"curl --data-binary "{\"request\": {\"application\":\"$2\", \"auth\":\"$1\", \"notifications\": [{ \"send_date\": \"now\", \"content\": \"$MESSAGE\" }] }}" \-H "Content-type: application/json" \"https://api.pushwoosh.com/json/1.3/createMessage"echo "";exit 0;<?phpdefine('PW_AUTH', 'API TOKEN');define('PW_APPLICATION', 'APPLICATION CODE');define('PW_DEBUG', true);
function pwCall($method, $data) { $url = 'https://api.pushwoosh.com/json/1.3/' . $method; $request = json_encode(['request' => $data]);
$ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_ENCODING, 'gzip, deflate'); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
$response = curl_exec($ch); $info = curl_getinfo($ch); curl_close($ch);
if (defined('PW_DEBUG') && PW_DEBUG) { print "[PW] request: $request"; print "[PW] response: $response"; print '[PW] info: ' . print_r($info, true); }}
pwCall('createMessage', array( 'application' => PW_APPLICATION, 'auth' => PW_AUTH, 'notifications' => array( array( 'send_date' => 'now', 'content' => 'test', 'data' => array('custom' => 'json data'), 'link' => 'https://pushwoosh.com/' ) ) ));-module(pushwoosh).-export([run/0, stop/0, sendMessage/1]).%% sendMessage argument: message text %%
%% Authentication & App_id %%-define(PW_AUTH, "YOUR_AUTH_TOKEN").-define(PW_APPLICATION, "YOUR_PUSHWOOSH_APP_CODE").
%% KickStart %%run() -> application:start(unicode), application:start(crypto), application:start(public_key), application:start(ssl), application:start(inets), %% HTTP Client verbosity options flase, verbose, debug httpc:set_options([{verbose, false}]).stop() -> application:stop(ssl), application:stop(public_key), application:stop(crypto), application:stop(inets).%% JSON Wars !encode(S) -> encode(S, [$"]).encode([], Acc) -> lists:reverse([$" | Acc]);encode([C | Cs], Acc) -> Hex = lists:flatten(io_lib:format("~4.16.0b", [C])), encode(Cs, lists:reverse(Hex) ++ "u\" ++ Acc).
sendMessage(Message_text) -> %% URL to JSON API 1.3 Url = "https://api.pushwoosh.com/json/1.3/createMessage", EncodedMessage = encode(Message_text), {ok, Response} = httpc:request( %%Method post, %%Request {Url, [{"User-Agent", "Erlang exemple"}], "application/json; charset=UTF-8", "{\"request\":{ \"application\": \""?PW_APPLICATION"\", \"auth\": \""?PW_AUTH"\", \"notifications\": [{ \"send_date\": \"now\", \"content\": "++EncodedMessage++" }]}}"}, %%HTTP options [{ssl,[{verify, verify_none}]}, {version, "HTTP/1.0"}], %%Options []), io:format("And received ~p", [Response]).class PushNotification
#- PushWoosh API Documentation https://www.pushwoosh.com/programming-push-notification/pushwoosh-push-notification-remote-api/ #- Two methods here: # - PushNotification.new.notify_all(message) Notifies all with the same option # - PushNotification.new.notify_devices(notification_options = {}) Notifies specific devices with custom options
include HTTParty #Make sure to have the HTTParty gem declared in your gemfile https://github.com/jnunemaker/httparty default_params :output => 'json' format :json
def initialize #- Change to your settings @auth = {:application => "00000-00000",:auth => "auth_token"} end
# PushNotification.new.notify_all("This is a test notification to all devices") def notify_all(message) notify_devices({:content => message}) end
# PushNotification.new.notify_device({ # :content => "TEST", # :data => {:custom_data => value}, # :devices => array_of_tokens #}) def notify_devices(notification_options = {}) #- Default options, uncomment :data or :devices if needed default_notification_options = { # YYYY-MM-DD HH:mm OR 'now' :send_date => "now", # Object( language1: 'content1', language2: 'content2' ) OR string :content => { :fr => "Test", :en => "Test" }, # JSON string or JSON object "custom": "json data" #:data => { # :custom_data => value #}, # omit this field (push notification will be delivered to all the devices for the application), or provide the list of devices IDs #:devices => {} }
#- Merging with specific options final_notification_options = default_notification_options.merge(notification_options)
#- Constructing the final call options = @auth.merge({:notifications => [final_notification_options]}) options = {:request => options} #- Executing the POST API Call with HTTPARTY - :body => options.to_json allows us to send the json as an object instead of a string response = self.class.post("https://api.pushwoosh.com/json/1.3/createMessage", :body => options.to_json,:headers => { 'Content-Type' => 'application/json' }) endend// Uses JSON classes from https://json.org/java/
package com.arellomobile;
import org.json.*;import java.io.*;import java.net.*;
public class SendPushNotificationSample{ public static final String PUSHWOOSH_SERVICE_BASE_URL = "https://api.pushwoosh.com/json/1.3/"; private static final String AUTH_TOKEN = "YOUR_AUTH_TOKEN"; private static final String APPLICATION_CODE = "PW_APPLICATION_CODE";
public static void main(String[] args) throws JSONException, MalformedURLException { String method = "createMessage"; URL url = new URL(PUSHWOOSH_SERVICE_BASE_URL + method);
JSONArray notificationsArray = new JSONArray() .put(new JSONObject().put("send_date", "now") .put("content", "test") .put("link", "https://pushwoosh.com/"));
JSONObject requestObject = new JSONObject() .put("application", APPLICATION_CODE) .put("auth", AUTH_TOKEN) .put("notifications", notificationsArray);
JSONObject mainRequest = new JSONObject().put("request", requestObject); JSONObject response = SendServerRequest.sendJSONRequest(url, mainRequest.toString());
System.out.println("Response is: " + response); }}
class SendServerRequest{ static JSONObject sendJSONRequest(URL url, String request) { HttpURLConnection connection = null; try { connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); connection.setRequestProperty("Content-Type", "application/json"); connection.setDoInput(true); connection.setDoOutput(true);
DataOutputStream writer = new DataOutputStream(connection.getOutputStream()); writer.write(request.getBytes("UTF-8")); writer.flush(); writer.close();
return parseResponse(connection); } catch (Exception e) { System.out.println("An error occurred: " + e.getMessage()); return null; } finally { if (connection != null) { connection.disconnect(); } } }
static JSONObject parseResponse(HttpURLConnection connection) throws IOException, JSONException { String line; BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); StringBuilder response = new StringBuilder();
while ((line = reader.readLine()) != null) { response.append(line).append(''); } reader.close();
return new JSONObject(response.toString()); }}import json
PW_AUTH = 'API TOKEN'PW_APPLICATION_CODE = 'APPLICATION CODE'
try: # For Python 3.0 and later from urllib.request import urlopen from urllib.request import Requestexcept ImportError: # Fall back to Python 2's urllib2 from urllib2 import urlopen from urllib2 import Request
def pw_call(method, data): url = 'https://api.pushwoosh.com/json/1.3/' + method data = json.dumps({'request': data}) req = Request(url, data.encode('UTF-8'), {'Content-Type': 'application/json'}) try: f = urlopen(req) response = f.read() f.close() print('Pushwoosh response: ' + str(response)) except Exception as e: print ('Request error: ' + str(e))
if __name__ == '__main__': pw_call('createMessage', { 'auth': PW_AUTH, 'application': PW_APPLICATION_CODE, 'notifications': [ { 'send_date': 'now', 'content': 'test', 'data': {"custom": "json data"}, 'link': 'https://pushwoosh.com' } ] } )using System;using System.IO;using System.Net;using Newtonsoft.Json.Linq;
namespace WebApplication1{ public partial class Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string pwAuth = "YOUR_AUTH_TOKEN"; string pwApplication = "PW_APPLICATION_CODE"; JObject json = new JObject( new JProperty("application", pwApplication), new JProperty("auth", pwAuth), new JProperty("notifications", new JArray( new JObject( new JProperty("send_date", "now"), new JProperty("content", "test"), new JProperty("wp_type", "Toast"), new JProperty("wp_count", 3), new JProperty("data", new JObject( new JProperty("custom", "json data"))), new JProperty("link", "https://pushwoosh.com/"), new JProperty("conditions", new JArray( (object)new JArray("Color", "EQ", "black"))))))); PWCall("createMessage", json); } private void PWCall(string action, JObject data) { Uri url = new Uri("https://api.pushwoosh.com/json/1.3/" + action); JObject json = new JObject(new JProperty("request", data)); DoPostRequest(url, json); } private void DoPostRequest(Uri url, JObject data) { HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url); req.ContentType = "text/json"; req.Method = "POST"; using (var streamWriter = new StreamWriter(req.GetRequestStream())) { streamWriter.Write(data.ToString()); } HttpWebResponse httpResponse; try { httpResponse = (HttpWebResponse)req.GetResponse(); } catch (Exception exc) { throw new Exception(string.Format("Problem with {0}, {1}", url, exc.Message)); } using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { var responseText = streamReader.ReadToEnd(); Page.Response.Write(responseText); } } }}package main
import( "fmt" "encoding/json" "net/http" "bytes" "io/ioutil")
const ( PW_APPLICATION = "APPLICATION CODE" PW_AUTH = "API TOKEN" PW_ENDPOINT = "https://api.pushwoosh.com/json/1.3/")
func pwCall(method string, data []byte) (bool) { url := PW_ENDPOINT + method request, err := http.NewRequest("POST", url, bytes.NewBuffer(data)) request.Header.Set("Content-Type", "application/json")
client := http.Client{} response, err := client.Do(request) if err != nil { fmt.Println("Error occur: " + err.Error()) return false } defer response.Body.Close()
fmt.Println("Response Status: ", response.Status) if (response.StatusCode == 200) { body, _ := ioutil.ReadAll(response.Body) fmt.Println("Response Body: ", string(body)) return true } return false}
func main() { requestData := map[string]interface{}{ "request": map[string]interface{} { "auth": PW_AUTH, "application": PW_APPLICATION, "notifications": []interface{}{ map[string]interface{} { "send_date": "now", "content": "test", "link": "https://pushwoosh.com", }, }, }, } jsonRequest, _ := json.Marshal(requestData) requestString := string(jsonRequest) fmt.Println("Request body: " + requestString)
pwCall("createMessage", jsonRequest)}$.ajax({ type: "POST", url: "https://api.pushwoosh.com/json/1.3/createMessage", data: JSON.stringify({ "request": { "application": "APPLICATION CODE", "auth": "API TOKEN", "notifications": [{ "send_date": "now", "ignore_user_timezone": true, "content": "Hello world!" }] } }), dataType: "json"}).done(function(data) { console.log(data);});deleteMessage
Anchor link toPOST https://api.pushwoosh.com/json/1.3/deleteMessage
একটি নির্ধারিত মেসেজ ডিলেট করে।
অনুরোধের বডি
Anchor link to| নাম | প্রকার | বর্ণনা |
|---|---|---|
| auth* | string | Pushwoosh কন্ট্রোল প্যানেল থেকে API অ্যাক্সেস টোকেন। |
| message* | string | /createMessage অনুরোধে প্রাপ্ত মেসেজ কোড। |
{ "status_code": 200, "status_message": "OK"}{ "request":{ "auth": "yxoPUlwqm…………pIyEX4H", // আবশ্যক। Pushwoosh কন্ট্রোল প্যানেল থেকে API অ্যাক্সেস টোকেন "message": "xxxx-xxxxxxx-xxxxxx" // আবশ্যক। /createMessage-এ প্রাপ্ত মেসেজ কোড }}স্ট্যাটাস কোড:
| HTTP স্ট্যাটাস কোড | status_code | বর্ণনা |
|---|---|---|
| 200 | 200 | মেসেজ সফলভাবে ডিলেট করা হয়েছে |
| 200 | 210 | আর্গুমেন্ট ত্রুটি। আরও তথ্যের জন্য status_message দেখুন |
| 400 | N/A | ত্রুটিপূর্ণ অনুরোধ স্ট্রিং |
| 500 | 500 | অভ্যন্তরীণ ত্রুটি |
<?php// see https://gomoob.github.io/php-pushwoosh/delete-message.htmluse Gomoob\Pushwoosh\Model\Request\DeleteMessageRequest;
// creates request instance$request = DeleteMessageRequest::create()->setMessage('MESSAGE_CODE');
// call '/deleteMessage' Web Service$response = $pushwoosh->deleteMessage($request);
if($response->isOk()) { print 'Great, my message has been deleted !';} else { print 'Oups, the deletion failed :-('; print 'Status code : ' . $response->getStatusCode(); print 'Status message : ' . $response->getStatusMessage();}getMessageDetails
Anchor link toPOST https://api.pushwoosh.com/json/1.3/getMessageDetails
মেসেজের বিস্তারিত তথ্য পুনরুদ্ধার করে।
অনুরোধের বডি
Anchor link to| নাম | প্রকার | বর্ণনা |
|---|---|---|
| auth* | string | Pushwoosh কন্ট্রোল প্যানেল থেকে API অ্যাক্সেস টোকেন। |
| message* | string | মেসেজ কোড বা মেসেজ আইডি। |
{ "status_code": 200, "status_message": "OK", "response": { "message": { "id": 2068991743, "created": "2016-09-14 17:19:42", "send_date": "2016-09-14 17:19:41", "status": "done", "content": { "en": "Hello {Name|CapitalizeFirst|friend}! 🚀" }, "platforms": "[1]", "ignore_user_timezone": "1", "code": "XXXX-92B4C3C5-A7F5EF70", "data": { "key": "value" } } }}{ "request":{ "auth": "yxoPUlwqm…………pIyEX4H", // আবশ্যক। Pushwoosh কন্ট্রোল প্যানেল থেকে API অ্যাক্সেস টোকেন "message": "xxxx-xxxxxxx-xxxxxx" // আবশ্যক। মেসেজ কোড বা মেসেজ আইডি }}createTargetedMessage
Anchor link toPOST https://api.pushwoosh.com/json/1.3/createTargetedMessage
একটি নতুন টার্গেটেড পুশ নোটিফিকেশন তৈরি করে।
অনুরোধের বডি
Anchor link to| নাম | প্রকার | বর্ণনা |
|---|---|---|
| auth* | string | Pushwoosh কন্ট্রোল প্যানেল থেকে API অ্যাক্সেস টোকেন। |
| devices_filter* | string | নিচের মন্তব্য দেখুন। |
| send_date* | string | YYYY-MM-DD HH:mm বা ‘now’। |
| ignore_user_timezone | boolean | উপেক্ষা করা হলে, “send_date”-এর জন্য ডিফল্ট UTC-0। |
| timezone | string | উপেক্ষা করা হলে, “send_date”-এর জন্য ডিফল্ট UTC-0। |
| campaign | string | একটি ক্যাম্পেইনের কোড যেখানে আপনি এই পুশ মেসেজটি বরাদ্দ করতে চান। |
| content* | string | নোটিফিকেশন কন্টেন্ট। বিস্তারিত জানতে অনুরোধের উদাহরণ দেখুন। |
| transactionId | string | নেটওয়ার্ক সমস্যার ক্ষেত্রে মেসেজ ডুপ্লিকেট হওয়া রোধ করতে অনন্য মেসেজ শনাক্তকারী। Pushwoosh-এর দিকে 5 মিনিটের জন্য সংরক্ষিত। |
| link | string | ব্যবহারকারী একটি পুশ মেসেজ খুললে যে লিঙ্কটি খোলা হবে। |
| minimize_link | integer | 0 - ছোট করবেন না, 2 - bit.ly। ডিফল্ট = 2। |
| data | object | JSON স্ট্রিং বা JSON অবজেক্ট। পেলোডে “u” প্যারামিটার হিসাবে পাস করা হবে (JSON স্ট্রিং-এ রূপান্তরিত)। |
| preset | string | প্রিসেট কোড। |
| send_rate | integer | থ্রটলিং। বৈধ মান 100 থেকে 1000 পুশ প্রতি সেকেন্ড। |
| inbox_date | string | ইনবক্স থেকে একটি মেসেজ কখন সরাতে হবে তা উল্লেখ করুন। |
| inbox_image | string | ইনবক্সে মেসেজের পাশে দেখানো হবে এমন ছবির URL। |
{ "status_code": 200, "status_message": "OK", "response": { "messageCode": "97B0-C7473871-2FBDFDC6" }}The request cannot be fulfilled due to bad syntax.আরও প্রতিক্রিয়া উদাহরণ:
{ "status_code": 210, "status_message": "Errors occurred while compiling filter", "response": { "errors": [{ "message": "Invalid tag set specification. \")\" expected.", "type": "syntax" }] }}{ "status_code": 210, "status_message": "Errors occurred while compiling filter", "response": { "errors": [{ "message": "Application \"11111-11111\" not found", "type": "semantic", "near": "\"11111-11111\"" }] }}{ "status_code": 210, "status_message": "Errors occurred while compiling filter", "response": { "errors": [{ "message": "Invalid character \"/\" at 1:19", "type": "lexical" }] }}{ "request": { "auth": "yxoPUlwqm…………pIyEX4H", // আবশ্যক। Pushwoosh কন্ট্রোল প্যানেল থেকে API অ্যাক্সেস টোকেন "devices_filter": "A(\"XXXXX-XXXXX\") * T(\"City\", EQ, \"Name\")", // আবশ্যক। সিনট্যাক্স নিচে ব্যাখ্যা করা হয়েছে "send_date": "now", // ঐচ্ছিক। YYYY-MM-DD HH:mm অথবা 'now' "ignore_user_timezone": true, // ঐচ্ছিক। "timezone": "America/New_York", // ঐচ্ছিক। উপেক্ষা করা হলে "send_date"-এর জন্য ডিফল্ট UTC-0। // আরও তথ্য https://php.net/manual/timezones.php। "campaign": "CAMPAIGN_CODE", // ঐচ্ছিক। ক্যাম্পেইন কোড যেখানে আপনি এই পুশ মেসেজটি বরাদ্দ করতে চান। "content": { // ঐচ্ছিক। অবজেক্ট অথবা স্ট্রিং। Windows-এর জন্য এর পরিবর্তে "wns_content" ব্যবহার করুন। "en": "English", "de": "Deutsch" }, "transactionId": "unique UUID", // ঐচ্ছিক। নেটওয়ার্ক সমস্যার ক্ষেত্রে মেসেজ ডুপ্লিকেট হওয়া রোধ করতে অনন্য মেসেজ শনাক্তকারী। // Pushwoosh-এর দিকে 5 মিনিটের জন্য সংরক্ষিত। "rich_media": "XXXXX-XXXXX", // ঐচ্ছিক। Pushwoosh কন্ট্রোল প্যানেলের রিচ মিডিয়া এডিটর পেজের URL বার থেকে রিচ মিডিয়া কোডটি কপি করুন। "link": "https://google.com", // ঐচ্ছিক। ডীপলিংকের জন্য "minimize_link": 0 যোগ করুন "minimize_link": 0, // ঐচ্ছিক। 0 — ছোট করবেন না, 2 — bitly। ডিফল্ট = 2। // Google URL শর্টনার 30 মার্চ, 2019 থেকে নিষ্ক্রিয়। // দয়া করে মনে রাখবেন যে শর্টনারগুলিতে কলের সংখ্যার উপর সীমাবদ্ধতা রয়েছে। "data": { // ঐচ্ছিক। JSON স্ট্রিং বা JSON অবজেক্ট। "key": "value" // পেলোডে "u" প্যারামিটার হিসাবে পাস করা হবে }, // (JSON স্ট্রিং-এ রূপান্তরিত)। "preset": "XXXXX-XXXXX", // ঐচ্ছিক। আপনার কন্ট্রোল প্যানেল থেকে পুশ প্রিসেট কোড। "send_rate": 100, // ঐচ্ছিক। থ্রটলিং। বৈধ মান 100 থেকে 1000 পুশ/সেকেন্ড। "dynamic_content_placeholders": { // ঐচ্ছিক। ডিভাইস ট্যাগের পরিবর্তে ডাইনামিক কন্টেন্টের জন্য প্লেসহোল্ডার। "firstname": "John", "lastname": "Doe" },
// API-এর মাধ্যমে ইনবক্সে মেসেজ সংরক্ষণ করতে, "inbox_date" বা "inbox_image" ব্যবহার করুন। // এই প্যারামিটারগুলির মধ্যে অন্তত একটি ব্যবহার করা হলে মেসেজটি সংরক্ষিত হয়। "inbox_image": "Inbox image URL", // ঐচ্ছিক। মেসেজের পাশে দেখানো হবে এমন ছবি। "inbox_date": "2017-02-02" // ঐচ্ছিক। ইনবক্স থেকে একটি মেসেজ কখন সরাতে হবে তা উল্লেখ করুন। // নির্দিষ্ট তারিখের 00:00:01 UTC-তে মেসেজটি ইনবক্স থেকে সরানো হবে, // তাই আগের দিনটি শেষ দিন যখন একজন ব্যবহারকারী তাদের ইনবক্সে মেসেজটি দেখতে পারেন। // যদি উল্লেখ না করা হয়, ডিফল্ট অপসারণের তারিখ পাঠানোর তারিখের পরের দিন। }}{ "request": { "auth": "yxoPUlwqm…………pIyEX4H", // আবশ্যক। Pushwoosh কন্ট্রোল প্যানেল থেকে API অ্যাক্সেস টোকেন "devices_filter": "FILTER CONDITION", "send_date": "now", // ঐচ্ছিক। YYYY-MM-DD HH:mm অথবা 'now' "content": { // ঐচ্ছিক। অবজেক্ট অথবা স্ট্রিং। "en": "English", // Windows-এর জন্য এর পরিবর্তে "wns_content" ব্যবহার করুন। "de": "Deutsch" }, "ignore_user_timezone": true, // ঐচ্ছিক। "timezone": "America/New_York", // ঐচ্ছিক। উপেক্ষা করা হলে "send_date"-এর জন্য ডিফল্ট UTC-0। // আরও তথ্য https://php.net/manual/timezones.php। "campaign": "CAMPAIGN_CODE", // ঐচ্ছিক। ক্যাম্পেইন কোড যেখানে আপনি এই পুশ মেসেজটি বরাদ্দ করতে চান।
// iOS সম্পর্কিত প্যারামিটার "ios_badges": 5, // ঐচ্ছিক। iOS অ্যাপ্লিকেশন ব্যাজ নম্বর। // ব্যাজ মান n দ্বারা বৃদ্ধি/হ্রাস করতে "+n" বা "-n" ব্যবহার করুন। "ios_sound": "sound file.wav", // ঐচ্ছিক। অ্যাপ্লিকেশনের প্রধান বান্ডেলে সাউন্ড ফাইলের নাম। // যদি খালি রাখা হয়, ডিভাইসটি একটি পুশ পাওয়ার পর কোনো শব্দ করবে না। "ios_sound_off": true, // ঐচ্ছিক। "ios_sound" ফিল্ড দ্বারা সেট করা সাউন্ড সক্রিয়/নিষ্ক্রিয় করুন। "ios_ttl": 3600, // ঐচ্ছিক। টাইম টু লিভ প্যারামিটার — সেকেন্ডে সর্বোচ্চ মেসেজ জীবনকাল। "ios_silent": 1, // ঐচ্ছিক। সাইলেন্ট নোটিফিকেশন সক্রিয় করে ("sound" এবং "content" উপেক্ষা করে)। "ios_category_id": "1", // ঐচ্ছিক। Pushwoosh থেকে iOS8 ক্যাটাগরি আইডি। "ios_category_custom": "category", // ঐচ্ছিক। কাস্টম APNS ক্যাটাগরি। "ios_root_params": { // ঐচ্ছিক। aps ডিকশনারিতে রুট লেভেল প্যারামিটার। "aps": { "content-available": "0", // ঐচ্ছিক। একটি সাইলেন্ট পুশ পাঠাতে "1" এবং নিয়মিত পুশের জন্য "0" সেট করুন। "mutable-content": 1 // iOS10+ মিডিয়া অ্যাটাচমেন্টের জন্য আবশ্যক। }, "attachment": "YOUR_ATTACHMENT_URL", // iOS10+ মিডিয়া অ্যাটাচমেন্ট URL। "data": {} // ঐচ্ছিক। ব্যবহারকারী সরবরাহকৃত ডেটা, সর্বোচ্চ 4KB }, "apns_trim_content": 1, // ঐচ্ছিক। (0|1) অতিরিক্ত কন্টেন্ট স্ট্রিংগুলিকে এলিপসিস দিয়ে ট্রিম করে। "ios_title": { // ঐচ্ছিক। iOS পুশ নোটিফিকেশনের জন্য শিরোনাম যোগ করে। "en": "title" }, "ios_subtitle": { // ঐচ্ছিক। iOS পুশ নোটিফিকেশনের জন্য সাবটাইটেল যোগ করে। "en": "subTitle" }, "ios_content": { // ঐচ্ছিক। iOS পুশ নোটিফিকেশনের জন্য কন্টেন্ট যোগ করে। "en": "content" },
// Android সম্পর্কিত প্যারামিটার "android_root_params": { // ঐচ্ছিক। কাস্টম কী-ভ্যালু অবজেক্ট। "key": "value" // অ্যান্ড্রয়েড পেলোড প্রাপকদের জন্য রুট লেভেল প্যারামিটার। }, "android_sound": "soundfile", // ঐচ্ছিক। ফাইল এক্সটেনশন নেই। যদি খালি রাখা হয়, ডিভাইসটি একটি পুশ পাওয়ার পর কোনো শব্দ করবে না। "android_sound_off": true, // ঐচ্ছিক। "android_sound" ফিল্ড দ্বারা সেট করা সাউন্ড সক্রিয়/নিষ্ক্রিয় করুন "android_header": { // ঐচ্ছিক। অবজেক্ট অথবা স্ট্রিং। Android নোটিফিকেশন হেডার। "en": "header" }, "android_content": { // ঐচ্ছিক। অবজেক্ট অথবা স্ট্রিং। Android নোটিফিকেশন কন্টেন্ট। "en": "content" }, "android_icon": "icon.png", "android_custom_icon": "URL.png", // ঐচ্ছিক। ইমেজ ফাইলের সম্পূর্ণ পাথ URL। "android_banner": "URL.png", // ঐচ্ছিক। ইমেজ ফাইলের সম্পূর্ণ পাথ URL। "android_badges": 5, // ঐচ্ছিক। পূর্ণসংখ্যা। Android অ্যাপ্লিকেশন আইকন ব্যাজ নম্বর। // ব্যাজ মান n দ্বারা বৃদ্ধি/হ্রাস করতে "+n" বা "-n" ব্যবহার করুন। "android_gcm_ttl": 3600, // ঐচ্ছিক। টাইম টু লিভ প্যারামিটার — সেকেন্ডে সর্বোচ্চ মেসেজ জীবনকাল। "android_vibration": 0, // ঐচ্ছিক। উচ্চ-অগ্রাধিকার পুশের জন্য Android ফোর্স-ভাইব্রেশন। "android_led": "#rrggbb", // ঐচ্ছিক। LED হেক্স রঙ, ডিভাইস তার সেরা অনুমান করবে। "android_priority": -1, // ঐচ্ছিক। Android 8.0 এবং উচ্চতর ডিভাইসগুলির জন্য "importance" প্যারামিটার এবং Android 7.1 এবং নিম্নতর ডিভাইসগুলির জন্য "priority" প্যারামিটার সেট করে। // একটি নোটিফিকেশন চ্যানেল বা একটি নির্দিষ্ট নোটিফিকেশনের ইন্টারাপশন লেভেল স্থাপন করে। // বৈধ মানগুলি হল -2, -1, 0, 1, 2। "android_delivery_priority": "normal", // ঐচ্ছিক। "normal" বা "high"। ডিভাইস পাওয়ার সেভিং মোডে থাকাকালীন নোটিফিকেশন ডেলিভারি সক্ষম করে। "android_ibc": "#RRGGBB", // ঐচ্ছিক। ললিপপে আইকন ব্যাকগ্রাউন্ড রঙ, #RRGGBB, // #AARRGGBB, "red", "black", "yellow", ইত্যাদি। "android_silent": 1, // ঐচ্ছিক। 0 বা 1। সাইলেন্ট নোটিফিকেশন সক্ষম করুন। // সাউন্ড এবং কন্টেন্ট উপেক্ষা করুন
// Amazon সম্পর্কিত প্যারামিটার "adm_root_params": { // ঐচ্ছিক। কাস্টম কী-ভ্যালু অবজেক্ট "key": "value" }, "adm_sound": "push.mp3", "adm_sound_off": true, // ঐচ্ছিক। "adm_sound" ফিল্ড দ্বারা সেট করা সাউন্ড সক্রিয়/নিষ্ক্রিয় করুন "adm_header": { "en": "Header" }, "adm_content": { "en": "content" }, "adm_icon": "icon.png", "adm_custom_icon": "URL.png", "adm_banner": "URL.png", "adm_ttl": 3600, // ঐচ্ছিক। টাইম টু লিভ প্যারামিটার — সেকেন্ডে সর্বোচ্চ মেসেজ জীবনকাল। "adm_priority": -1, // ঐচ্ছিক। অ্যামাজন পুশ ড্রয়ারে পুশের অগ্রাধিকার, // বৈধ মানগুলি হল -2, -1, 0, 1 এবং 2।
// Mac OS X সম্পর্কিত প্যারামিটার "mac_badges": 3, "mac_sound": "sound.caf", "mac_sound_off": true, "mac_root_params": { "content-available": 1 }, "mac_ttl": 3600, // ঐচ্ছিক। টাইম টু লিভ প্যারামিটার — সেকেন্ডে সর্বোচ্চ মেসেজ জীবনকাল। "mac_title": { // ঐচ্ছিক। পুশ নোটিফিকেশনের জন্য শিরোনাম যোগ করে। "en": "title" }, "mac_subtitle": { // ঐচ্ছিক। MacOS পুশ নোটিফিকেশনের জন্য সাবটাইটেল যোগ করে। "en": "subtitle" }, "mac_content": { // ঐচ্ছিক। MacOS পুশ নোটিফিকেশনের জন্য কন্টেন্ট যোগ করে। "en": "content" },
// Windows সম্পর্কিত প্যারামিটার "wns_content": { // আবশ্যক। MIME-এর base64-এ এনকোড করা নোটিফিকেশনের কন্টেন্ট (XML বা raw) // অবজেক্ট অথবা স্ট্রিং আকারে "en": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48YmFkZ2UgdmFsdWU9ImF2YWlsYWJsZSIvPg==", "de": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48YmFkZ2UgdmFsdWU9Im5ld01lc3NhZ2UiLz4=" }, "wns_type": "Badge", // 'Tile' | 'Toast' | 'Badge' | 'Raw' "wns_tag": "myTag", // ঐচ্ছিক। টাইল রিপ্লেসমেন্ট নীতিতে ব্যবহৃত। // 16 অক্ষরের বেশি নয় এমন একটি আলফানিউমেরিক স্ট্রিং। "wns_cache": 1, // ঐচ্ছিক। (1|0) X-WNS-Cache-Policy মানে অনুবাদ করে। "wns_ttl": 600, // ঐচ্ছিক। সেকেন্ডে নোটিফিকেশনের মেয়াদ শেষ হওয়ার সময়।
// Safari সম্পর্কিত প্যারামিটার "safari_title": { // ঐচ্ছিক। অবজেক্ট অথবা স্ট্রিং। নোটিফিকেশনের শিরোনাম। "en": "title" }, "safari_content": { // ঐচ্ছিক। অবজেক্ট অথবা স্ট্রিং। নোটিফিকেশনের কন্টেন্ট। "en": "content" }, "safari_action": "Click here", // ঐচ্ছিক। "safari_url_args": [ // আবশ্যক। কিন্তু মান খালি হতে পারে "firstArgument", "secondArgument" ], "safari_ttl": 3600, // ঐচ্ছিক। টাইম টু লিভ প্যারামিটার — সেকেন্ডে একটি মেসেজের সর্বোচ্চ জীবনকাল।
// Chrome সম্পর্কিত প্যারামিটার "chrome_title": { // ঐচ্ছিক। আপনি এই প্যারামিটারে মেসেজের হেডার উল্লেখ করতে পারেন। "en": "title" }, "chrome_content": { // ঐচ্ছিক। আপনি এই প্যারামিটারে মেসেজের কন্টেন্ট উল্লেখ করতে পারেন। "en": "content" }, "chrome_icon": "icon_URL", // ঐচ্ছিক। আইকনের সম্পূর্ণ পাথ URL বা এক্সটেনশন রিসোর্স ফাইল পাথ "chrome_gcm_ttl": 3600, // ঐচ্ছিক। টাইম টু লিভ প্যারামিটার – সেকেন্ডে সর্বোচ্চ মেসেজ জীবনকাল। "chrome_duration": 20, // ঐচ্ছিক। ক্রোম পুশ প্রদর্শনের সময় পরিবর্তন করে। ব্যবহারকারী ইন্টারঅ্যাক্ট না করা পর্যন্ত পুশ প্রদর্শন করতে 0 সেট করুন। "chrome_image": "image_URL", // ঐচ্ছিক। বড় ইমেজের URL "chrome_root_params": { // ঐচ্ছিক। ক্রোমে পাঠানো মেসেজের জন্য নির্দিষ্ট প্যারামিটার সেট করুন। "key": "value" }, "chrome_button_text1": "text1", // ঐচ্ছিক। "chrome_button_url1": "button1_URL", // ঐচ্ছিক। chrome_button_text1 সেট না থাকলে উপেক্ষা করা হয়। "chrome_button_text2": "text2", // ঐচ্ছিক। "chrome_button_url2": "button2_url", // ঐচ্ছিক। chrome_button_text2 সেট না থাকলে উপেক্ষা করা হয়।
// Firefox সম্পর্কিত প্যারামিটার "firefox_title": { // ঐচ্ছিক। অবজেক্ট অথবা স্ট্রিং। আপনি এখানে মেসেজ হেডার উল্লেখ করতে পারেন। "en": "title" }, "firefox_content": { // ঐচ্ছিক। অবজেক্ট অথবা স্ট্রিং। আপনি এখানে মেসেজ কন্টেন্ট উল্লেখ করতে পারেন। "en": "content" }, "firefox_icon": "icon_URL", // ঐচ্ছিক। আইকনের সম্পূর্ণ পাথ URL বা এক্সটেনশন রিসোর্সে ফাইলের পাথ। "firefox_root_params": { // ঐচ্ছিক। ফায়ারফক্সে পাঠানো মেসেজের জন্য নির্দিষ্ট প্যারামিটার সেট করুন। "key": "value" } }}মৌলিক বিষয়গুলি খুব সহজ – সমস্ত ফিল্টার সত্তার সেট-এর উপর সঞ্চালিত হয়।
সেটগুলি এইভাবে সংজ্ঞায়িত করা হয়:
1. নির্দিষ্ট অ্যাপে সাবস্ক্রাইব করা ডিভাইস (A);
2. নির্দিষ্ট ট্যাগ মান (T) বা অ্যাপ-নির্দিষ্ট ট্যাগ মান (AT) এর সাথে মিলে যাওয়া ডিভাইস;\
সিনট্যাক্স
Anchor link toউপরের তালিকা অনুযায়ী কিছু নমুনা দিয়ে চেষ্টা করা যাক।
অ্যাপ সাবস্ক্রাইবারদের টার্গেট করা
Anchor link to“A” ফিল্টার একটি নির্দিষ্ট অ্যাপে সাবস্ক্রাইব করা ডিভাইসগুলির একটি সেট সংজ্ঞায়িত করে:
A("XXXXX-XXXXX", ["iOS", "Android", "OsX", "Windows", "Amazon", "Safari", "Chrome", "Firefox"])
যেখানে
- “XXXXX-XXXXX” – Pushwoosh অ্যাপ্লিকেশন কোড
- [“iOS”, “Android”, …] – টার্গেটেড প্ল্যাটফর্মের অ্যারে। যদি বাদ দেওয়া হয়, মেসেজটি এই অ্যাপের জন্য উপলব্ধ সমস্ত প্ল্যাটফর্মে পাঠানো হবে।
ট্যাগ ভ্যালু দ্বারা ফিল্টার করা
Anchor link to“T” ফিল্টার নির্দিষ্ট ট্যাগ মান নির্ধারিত ডিভাইসগুলির একটি সেট সংজ্ঞায়িত করে।
T(\"Age\", IN, [17,20])
ডিভাইসগুলির সেট সংজ্ঞায়িত করে যেগুলির “age” ট্যাগ 17, 18, 19, 20 এর মধ্যে একটি মান হিসাবে সেট করা আছে।
ট্যাগের প্রকার এবং অপারেটর
Anchor link toসবচেয়ে গুরুত্বপূর্ণ বিষয় হল ট্যাগগুলি অ্যাপগুলির মধ্যে শেয়ার করা হয়, এবং এটি আপনার টার্গেট ব্যবহারকারীদের একটি নির্দিষ্ট অ্যাপে আবদ্ধ না করে সেগমেন্ট এবং ফিল্টার করার জন্য একটি খুব শক্তিশালী উপকরণ উপস্থাপন করে।
ট্যাগটি তিনটি ভিন্ন ধরনের হতে পারে: স্ট্রিং, ইন্টিজার, তালিকা। ট্যাগের প্রকার নির্ধারণ করে যে আপনি একটি নির্দিষ্ট ট্যাগের জন্য কোন অপারেটর ব্যবহার করতে পারেন।
স্ট্রিং ট্যাগ
Anchor link toপ্রযোজ্য অপারেটর:
- EQ – একটি নির্দিষ্ট ট্যাগ মান সহ ডিভাইসগুলিকে টার্গেট করে
- IN – নির্দিষ্ট ট্যাগ মানগুলির যেকোনো একটি সহ ডিভাইসগুলিকে টার্গেট করে
- NOTIN – কোনো নির্দিষ্ট ট্যাগ মান ছাড়া ডিভাইসগুলিকে টার্গেট করে
- NOTEQ – একটি নির্দিষ্ট মানের সমান নয় এমন ট্যাগ মান সহ ডিভাইসগুলিকে টার্গেট করে
- NOTSET – একটি নির্দিষ্ট ট্যাগের জন্য কোনো মান ছাড়া ডিভাইসগুলিকে টার্গেট করে
- ANY – একটি নির্দিষ্ট ট্যাগের জন্য যেকোনো মান সেট করা ডিভাইসগুলিকে টার্গেট করে
উদাহরণ:
T (\"Age\", EQ, 30) – 30 বছর বয়সী ব্যবহারকারীদের ফিল্টার করে
T (\"favorite_color\", IN, [\"red\",\"green\",\"blue\"]) – যারা তাদের প্রিয় রঙ হিসাবে লাল, সবুজ বা নীল বেছে নিয়েছে তাদের ফিল্টার করে।
T (\"Name", NOTSET, \"\") – Name ট্যাগের জন্য কোনো মান ছাড়া ডিভাইসগুলিকে টার্গেট করে।
আপনি স্ট্রিং ট্যাগগুলির সাথে সংখ্যাসূচক মান ব্যবহার করতে পারেন, কিন্তু এই ধরনের মানগুলি একটি স্ট্রিং-এ রূপান্তরিত হবে।
ইন্টিজার ট্যাগ
Anchor link toপ্রযোজ্য অপারেটর:
- GTE – একটি নির্দিষ্ট মানের চেয়ে বড় বা সমান
- LTE– একটি নির্দিষ্ট মানের চেয়ে ছোট বা সমান
- EQ – একটি নির্দিষ্ট মানের সমান
- BETWEEN – নির্দিষ্ট সর্বনিম্ন এবং সর্বোচ্চ মানের মধ্যে
- IN – নির্দিষ্ট মানগুলির যেকোনো একটি
- NOTIN – একটি ডিভাইসে কোনো নির্দিষ্ট মান নির্ধারিত নেই
- NOTEQ – একটি নির্দিষ্ট মানের সমান নয় এমন ট্যাগ মান সহ ডিভাইস
- NOTSET – একটি নির্দিষ্ট ট্যাগের জন্য কোনো মান ছাড়া ডিভাইস
- ANY – একটি নির্দিষ্ট ট্যাগের জন্য যেকোনো মান সেট করা ডিভাইস
উদাহরণ:
T (\"Level\", EQ, 14) – শুধুমাত্র 14 লেভেলের ব্যবহারকারীদের ফিল্টার করে।
T (\"Level\", BETWEEN, [1,5) – 1, 2, 3, 4, এবং 5 লেভেলের ব্যবহারকারীদের ফিল্টার করে।
T (\"Level", GTE, 29) – যারা অন্তত 29 লেভেলে পৌঁছেছে তাদের টার্গেট করে।
তালিকা ট্যাগ
Anchor link toপ্রযোজ্য অপারেটর:
- IN – নির্দিষ্ট ট্যাগ মানগুলির যেকোনো একটি সহ ডিভাইস
উদাহরণ: T("Category", IN, ["breaking_news","business","politics"])
তারিখ ট্যাগ
Anchor link toপ্রযোজ্য অপারেটর:
- GTE – একটি নির্দিষ্ট মানের চেয়ে বড় বা সমান
- LTE– একটি নির্দিষ্ট মানের চেয়ে ছোট বা সমান
- EQ – একটি নির্দিষ্ট মানের সমান
- BETWEEN – নির্দিষ্ট সর্বনিম্ন এবং সর্বোচ্চ মানের মধ্যে
- NOTEQ – একটি নির্দিষ্ট মানের সমান নয় এমন ট্যাগ মান সহ ডিভাইস
- NOTSET – একটি নির্দিষ্ট ট্যাগের জন্য কোনো মান ছাড়া ডিভাইস
- ANY – একটি নির্দিষ্ট ট্যাগের জন্য যেকোনো মান সেট করা ডিভাইস
উদাহরণ:
AT("7777D-322A7","Last Application Open", BETWEEN, ["2022-02-28", "2022-03-02"])
AT("7777D-322A7","Last Application Open", GTE, "90 days ago")
অপারেশন
Anchor link to- “+” – দুটি সেট যোগ করে (OR এর সমান)
- “*” – দুটি সেটের ছেদ (AND এর সমান)
- “\” – একটি সেট থেকে অন্যটি বিয়োগ করে (NOT এর সমান)
সমস্ত অপারেশন বাম-সহযোগী। ”+” এবং ”*” এর একই অগ্রাধিকার রয়েছে। "" এর অগ্রাধিকার বেশি। আপনি গণনার অগ্রাধিকার নির্ধারণ করতে বন্ধনী ব্যবহার করতে পারেন।
মনে রাখবেন যে “\” অপারেশনটি বিনিময়যোগ্য নয়। A("12345-12345") \ A("67890-67890") এবং A("67890-67890") \ A("12345-12345") একই নয়।
getPushHistory
Anchor link toPOST https://api.pushwoosh.com/json/1.3/getPushHistory
পুশ বিস্তারিত সহ মেসেজ হিস্ট্রি পায়।
অনুরোধের বডি
Anchor link to| নাম | প্রকার | বর্ণনা |
|---|---|---|
| auth* | string | Pushwoosh কন্ট্রোল প্যানেল থেকে API অ্যাক্সেস টোকেন। |
| limitMessages | integer | একটি প্রতিক্রিয়ায় মেসেজের সংখ্যা সীমিত করে। সম্ভাব্য মান 10 থেকে 1000। |
| source | string | পুশ হিস্ট্রি উৎস। null বা: “CP”, “API”, “GeoZone”, “RSS”, “AutoPush”, “A/B Test” হতে পারে। |
| searchBy | string | অনুসন্ধান করার জন্য সম্ভাব্য মান। null বা: “notificationID”, “notificationCode”, “applicationCode”, “campaignCode” হতে পারে। |
| value | string | ”searchBy” ফিল্ড অনুযায়ী সেট করা অনুসন্ধান মান। |
| lastNotificationID | string | পেজিনেশনের জন্য ব্যবহৃত। পূর্ববর্তী /getPushHistory কল থেকে শেষ messageId। নিচে বিস্তারিত দেখুন। |
{ "status_code": 200, "status_message": "OK", "response": { "rows": [{ "id": 10191611434, "code": "8071-07AD1171-77238AD1", "createDate": "2020-09-14 12:26:21", "sendDate": "2020-09-14 12:26:21", "content": { "en": "Hello!" }, "url": null, "ios_title": null, "ios_subtitle": null, "ios_root_params": null, "android_header": null, "android_root_params": null, "conditions": null, "conditions_operator": "AND", "filter_code": "E3A64-A5F3C", "filter_conditions": "#In-app Purchase(≠0)", "filter_name": "Purchased something", "geozone": null, "campaignId": "", "campaignName": "", "subscription_segments": null, "open": { "C90C0-0E786": { "IOS": 0 } }, "sent": { "C90C0-0E786": { "IOS": 1 } }, "ctr": { "C90C0-0E786": 0 } }, { "id": 10191609202, "code": "41CA-83F8E0D7-7A63822B", "createDate": "2020-09-14 12:25:55", "sendDate": "2020-09-14 12:25:55", "content": { "en": "Hi!" }, "url": null, "ios_title": null, "ios_subtitle": null, "ios_root_params": null, "android_header": null, "android_root_params": null, "conditions": null, "conditions_operator": "AND", "filter_code": null, "filter_conditions": null, "filter_name": null, "geozone": null, "campaignId": "", "campaignName": "", "subscription_segments": { "2D732-BB981": "News" }, "open": { "C90C0-0E786": { "CHROME": 0, "IOS": 0 } }, "sent": { "C90C0-0E786": { "CHROME": 1, "IOS": 2 } }, "ctr": { "C90C0-0E786": 0 } }] }}{ "request":{ "auth": "yxoPUlwqm…………pIyEX4H", // আবশ্যক। Pushwoosh কন্ট্রোল প্যানেল থেকে API অ্যাক্সেস টোকেন "source": null, // ঐচ্ছিক। সম্ভাব্য মানগুলি হল null, "CP", "API", "GeoZone", // "RSS", "AutoPush", "A/B Test" "searchBy": "applicationCode", // ঐচ্ছিক। সম্ভাব্য মানগুলি হল "", "notificationID", // "notificationCode", "applicationCode", "campaignCode" "value": "C8717-703F2", // ঐচ্ছিক। "searchBy" ফিল্ড অনুযায়ী সেট করা অনুসন্ধান মান। "lastNotificationID": 0, // ঐচ্ছিক। পেজিনেশনের জন্য ব্যবহৃত। পূর্ববর্তী /getPushHistory কল থেকে শেষ messageId। নিচে বিস্তারিত দেখুন। "limitMessages": 1000 // ঐচ্ছিক। সম্ভাব্য মান 10 থেকে 1000। }}এই পদ্ধতিটি অ্যাকাউন্ট থেকে 1000টি মেসেজ মেসেজ আইডি দ্বারা সাজানো অবস্থায় ফিরিয়ে দেবে। দ্বিতীয় পৃষ্ঠা পেতে, lastNotificationId প্যারামিটারে পূর্ববর্তী প্রতিক্রিয়ার শেষ মেসেজ আইডি উল্লেখ করুন।
প্রতিক্রিয়া ডেটার প্রকার
Anchor link toid -- int | 0code -- stringcreateDate -- string (date: %Y-%m-%d %H:%M:%S)sendDate -- string (date: %Y-%m-%d %H:%M:%S)content -- array ( dict {lang: value} | list [])title -- array ( dict {lang: value} | list [])subtitle -- array ( dict {lang: value} | list [])url -- stringios_title -- string | array ( dict {lang: value} ) | nullios_subtitle -- string | array ( dict {lang: value} ) | nullios_root_params -- dict (JSON) | nullandroid_header -- string | array ( dict {lang: value} ) | nullandroid_root_params -- dict (JSON) | nullconditions -- list (JSON) | nullconditions_operator -- string | nullfilter_code -- string | nullfilter_name -- string | nullfilter_conditions -- string | nullgeozone -- string | nullcampaignId -- string | ""campaignName -- string | ""subscription_segments (obsolete) -- list (JSON) | nulldata -- dict (JSON) | nullopen -- dict [dict [string: int]] | "" Example: 'open': {'AAAAA-BBBBB': {'IOS': 1, 'ANDROID': 1}}sent -- dict [dict [string: int]] | "" Example: 'sent': {'AAAAA-BBBBB': {'IOS': 10, 'ANDROID': 10}}ctr -- dict [string: int] | "" Example: {'AAAAA-BBBBB': 1}errors -- dict [string: int] | "" Example: {'ANDROID': 1, 'IOS': 1}cancelMessage
Anchor link toPOST https://api.pushwoosh.com/json/1.3/cancelMessage
একটি নির্ধারিত মেসেজ ডিলেট করে।
অনুরোধের বডি
Anchor link to| নাম | প্রকার | বর্ণনা |
|---|---|---|
| auth* | string | Pushwoosh কন্ট্রোল প্যানেল থেকে API অ্যাক্সেস টোকেন। |
| message* | string | /createMessage প্রতিক্রিয়ায় প্রাপ্ত মেসেজ কোড। |
{ "status_code":200, "status_message":"OK"}{ "request":{ "auth": "yxoPUlwqm…………pIyEX4H", // আবশ্যক। Pushwoosh কন্ট্রোল প্যানেল থেকে API অ্যাক্সেস টোকেন "message": "xxxx-xxxxxxx-xxxxxx" // আবশ্যক। /createMessage প্রতিক্রিয়ায় প্রাপ্ত মেসেজ কোড }}স্ট্যাটাস কোড:
| HTTP স্ট্যাটাস কোড | status_code | বর্ণনা |
|---|---|---|
| 200 | 200 | মেসেজ সফলভাবে বাতিল করা হয়েছে |
| 200 | 210 | আর্গুমেন্ট ত্রুটি। আরও তথ্যের জন্য status_message দেখুন। |
| 400 | N/A | ত্রুটিপূর্ণ অনুরোধ স্ট্রিং |
| 500 | 500 | অভ্যন্তরীণ ত্রুটি |