জিওজোনস API
getNearestZone
Anchor link toSDK থেকে অভ্যন্তরীণভাবে কল করা হয়। নিকটতম জিওজোনের প্যারামিটার এবং এর দূরত্ব পুনরুদ্ধার করে। এছাড়াও জিও পুশ নোটিফিকেশনের জন্য ডিভাইসের অবস্থান রেকর্ড করে।
POST https://api.pushwoosh.com/json/1.3/getNearestZoneঅনুরোধের বডি প্যারামিটার
Anchor link to| প্যারামিটার | টাইপ | প্রয়োজনীয় | বিবরণ |
|---|---|---|---|
| application | string | হ্যাঁ | Pushwoosh অ্যাপ্লিকেশন কোড |
| hwid | string | হ্যাঁ | /registerDevice অনুরোধে ব্যবহৃত হার্ডওয়্যার ডিভাইস আইডি। |
| lat | string | হ্যাঁ | ডিভাইসের অক্ষাংশ। |
| lng | string | হ্যাঁ | ডিভাইসের দ্রাঘিমাংশ। |
অনুরোধের উদাহরণ
Anchor link to{ "request": { "application": "APPLICATION_CODE", "hwid": "HWID", "lat": 10.12345, "lng": 28.12345 }}PHP উদাহরণ
Anchor link to// See http://gomoob.github.io/php-pushwoosh/get-nearest-zone.html
use Gomoob\Pushwoosh\Model\Request\GetNearestZoneRequest;
// Creates the request instance$request = GetNearestZoneRequest::create() ->setHwid('HWID') ->setLat(10.12345) ->setLng(28.12345);
// Call the '/getNearestZone' Web Service$response = $pushwoosh->getNearestZone($request);
if ($response->isOk()) { print 'Zone name : ' . $response->getResponse()->getName(); print 'Latitude : ' . $response->getResponse()->getLat(); print 'Longitude : ' . $response->getResponse()->getLng(); print 'Range : ' . $response->getResponse()->getRange(); print 'Distance : ' . $response->getResponse()->getDistance();} else { print 'Oops, the operation failed :-('; print 'Status code : ' . $response->getStatusCode(); print 'Status message : ' . $response->getStatusMessage();}addGeoZone
Anchor link toএকটি নির্দিষ্ট অ্যাপে একটি জিওজোন যোগ করে।
POST https://api.pushwoosh.com/json/1.3/addGeoZoneঅনুরোধের বডি প্যারামিটার
Anchor link to| প্যারামিটার | টাইপ | প্রয়োজনীয় | বিবরণ |
|---|---|---|---|
| auth | string | হ্যাঁ | Pushwoosh কন্ট্রোল প্যানেল থেকে API অ্যাক্সেস টোকেন। |
| application | string | হ্যাঁ | Pushwoosh অ্যাপ্লিকেশন কোড |
| geozones | array | হ্যাঁ | একটি JSON অ্যারে হিসাবে জিওজোন প্যারামিটার। |
| geozones.name | string | হ্যাঁ | জিওজোনের নাম। |
| geozones.lat | string | একটি বৃত্তের জন্য প্রয়োজনীয়। | জিওজোনের অক্ষাংশ। যখন polygon সেট করা থাকে তখন এটি বাদ দিন — একটি বহুভুজ জিওজোন তার নিজস্ব কেন্দ্র নির্ধারণ করে। |
| geozones.lng | string | একটি বৃত্তের জন্য প্রয়োজনীয়। | জিওজোনের দ্রাঘিমাংশ। যখন polygon সেট করা থাকে তখন এটি বাদ দিন — একটি বহুভুজ জিওজোন তার নিজস্ব কেন্দ্র নির্ধারণ করে। |
| geozones.cooldown | integer | হ্যাঁ | একটি নোটিফিকেশন পাঠানোর পরে নীরব সময় (সেকেন্ডে)। |
| geozones.range | integer | একটি বৃত্তের জন্য প্রয়োজনীয়। | জিওজোনের পরিসীমা মিটারে। সর্বনিম্ন ৫০। যখন polygon সেট করা থাকে তখন এটি বাদ দিন — একটি বহুভুজ জিওজোন তার নিজস্ব পরিসীমা নির্ধারণ করে। |
| geozones.polygon | object | না | জিওজোনটিকে বৃত্তের পরিবর্তে একটি বহুভুজ তৈরি করে। lat/lng/range এর সাথে একত্রিত করা যাবে না — উভয়ই পাঠালে তা প্রত্যাখ্যান করা হবে। দেখুন বহুভুজ জিওজোন। |
| geozones.content | string or object | presetCode খালি থাকলে প্রয়োজনীয়। | জিওজোন বার্তার বিষয়বস্তু। |
| geozones.presetCode | string | content খালি থাকলে প্রয়োজনীয়। | content এর পরিবর্তে ব্যবহার করার জন্য পুশ প্রিসেট। |
| geozones.cluster | string | না | জিওজোন থেকে একটি ক্লাস্টার আনবাইন্ড করতে null উল্লেখ করুন। |
| geozones.campaign | string | না | জিওজোন থেকে একটি ক্যাম্পেইন আনবাইন্ড করতে null উল্লেখ করুন। যদি বাদ দেওয়া হয়, ক্যাম্পেইনের মান অপরিবর্তিত থাকবে। দ্রষ্টব্য: প্রিসেটের ক্যাম্পেইনের চেয়ে এর অগ্রাধিকার বেশি। |
| geozones.timetable | object | না | সময়সূচীর ব্যবধান সেট করে। |
অনুরোধের উদাহরণ
Anchor link to{ "request": { "auth": "yxoPUlwqm............pIyEX4H", // Pushwoosh কন্ট্রোল প্যানেল থেকে API অ্যাক্সেস টোকেন "application": "XXXXX-XXXXX", // Pushwoosh অ্যাপ্লিকেশন কোড "geozones": [{ "name": "Statue of George", // প্রয়োজনীয়। জিওজোনের নাম। "lat": "40.70087797", // প্রয়োজনীয়। জিওজোনের অক্ষাংশ। "lng": "-73.931851387", // প্রয়োজনীয়। জিওজোনের দ্রাঘিমাংশ। "cooldown": 60, // সেকেন্ডে, প্রয়োজনীয়। একটি নোটিফিকেশন পাঠানোর পরে নীরব সময় "range": 50, // মিটারে, সর্বনিম্ন ৫০, প্রয়োজনীয়। জিওজোনের পরিসীমা। "content": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.", // অথবা অবজেক্ট "presetCode": "AAAAA-BBBBB", // ঐচ্ছিক। কন্টেন্টের পরিবর্তে পুশ প্রিসেট ব্যবহার করা যেতে পারে "cluster": "GEOZONE CLUSTER CODE", // ঐচ্ছিক। ক্লাস্টারের কুলডাউন সময় প্রয়োগ করা হবে "campaign": "CAMPAIGN_CODE", // ঐচ্ছিক। জিওজোন থেকে ক্যাম্পেইন আনবাইন্ড করতে null উল্লেখ করুন "timetable": { // ঐচ্ছিক "timezone": 1234, // সেকেন্ডে "Mon": [ // উপলব্ধ দিন: Mon, Tue, Wed, Thu, Fri, Sat, Sun। পুশ পাঠানো { "start": "04:11", "stop": "12:00" } ], "Sun": [ { // এক বা দুটি ব্যবধান "start": "01:11", "stop": "17:00" }, { "start": "18:01", "stop": "23:59" } ] } }] }}একবারে একাধিক জিওজোন যোগ করা
Anchor link togeozones একটি অ্যারে নেয়, তাই একটি কলে একটি সম্পূর্ণ ব্যাচ তৈরি করা যায়। কিছু লেখার আগে ব্যাচটি সম্পূর্ণরূপে যাচাই করা হয়: যদি কোনো এন্ট্রি প্রত্যাখ্যান করা হয়, তাহলে কলটি ব্যর্থ হয় এবং সেই অনুরোধ থেকে কোনো জিওজোন তৈরি হয় না। ত্রুটিটি অ্যারেতে তার অবস্থান দ্বারা আপত্তিকর এন্ট্রিটির নাম দেয়, শূন্য থেকে গণনা করা হয়:
{ "status_code": 210, "status_message": "geozones[301]: range: পরিসীমা কমপক্ষে ৫০ মিটার হতে হবে"}সেই এন্ট্রিটি ঠিক করুন এবং অনুরোধটি আবার পাঠান। সফল হলে, GeoZones আপনার পাঠানো এন্ট্রিগুলির একই ক্রমে নতুন সংখ্যাসূচক আইডি ধারণ করে।
৫০০ টির বেশি এন্ট্রির ব্যাচ গ্রহণ করা হয় এবং অভ্যন্তরীণভাবে খণ্ডে বিভক্ত করা হয়। প্রথম লেখার আগে সম্পূর্ণ অ্যারেটি এখনও যাচাই করা হয়, তবে লেখাটি নিজে খণ্ড জুড়ে পারমাণবিক নয়: একটি এন্ট্রি যাচাইকরণ পাস করতে পারে এবং এখনও লেখা হতে ব্যর্থ হতে পারে, উদাহরণস্বরূপ যদি এর মধ্যে এটির নাম দেওয়া প্রিসেটটি মুছে ফেলা হয়। সেই ক্ষেত্রে কলটি 200 রিটার্ন করে যা লেখা হয়েছিল সেই আইডিগুলির সাথে এবং একটি Errors অ্যারে যা রান বন্ধ করে দেওয়া এন্ট্রিটির নাম দেয়, তাই তৈরি করা কিছুই হারিয়ে যায় না:
{ "status_code": 200, "status_message": "OK", "response": { "GeoZones": [100016750, 100016751], "Errors": [{ "index": 2, "message": "প্রিসেট পাওয়া যায়নি" }] }}যখন প্রতিটি এন্ট্রি লেখা হয়েছিল তখন Errors অনুপস্থিত থাকে, তাই একটি সম্পূর্ণ সফল প্রতিক্রিয়া অপরিবর্তিত থাকে। আপনার পাঠানো অ্যারের চেয়ে ছোট একটি GeoZones অ্যারের মানে সবসময় কিছু এন্ট্রি তৈরি হয়নি।
বহুভুজ জিওজোন
Anchor link toজিওজোনটিকে বহুভুজ করতে lat/lng/range এর পরিবর্তে polygon পাঠান। polygon.vertices হল {lat, lng} পয়েন্টের একটি ক্রমযুক্ত রিং যা আকৃতির রূপরেখা বর্ণনা করে:
{ "request": { "auth": "yxoPUlwqm............pIyEX4H", "application": "XXXXX-XXXXX", "geozones": [{ "name": "Downtown mall — ground floor", "cooldown": 60, "polygon": { "vertices": [ { "lat": 40.70087797, "lng": -73.931851387 }, { "lat": 40.70112456, "lng": -73.931602211 }, { "lat": 40.70095321, "lng": -73.930987654 }, { "lat": 40.70068912, "lng": -73.931233456 } ] }, "content": "স্বাগতম! আজ আপনার প্রথম কেনাকাটায় ১৫% ছাড় উপভোগ করুন।" }] }}lat, lng, এবং range রিং থেকে উদ্ভূত হয় — একটি ডিভাইস আসলে যে বৃত্তটি পর্যবেক্ষণ করে তা আকৃতির উপর কেন্দ্র করে যার ব্যাসার্ধ তার সবচেয়ে দূরবর্তী শীর্ষবিন্দুতে পৌঁছায় (সর্বনিম্ন ৫০ মিটার)। lat/lng/range এর সাথে polygon একসাথে পাঠানো প্রত্যাখ্যান করা হয়।
আপনি রিংটি খোলা বা বন্ধ পাঠাতে পারেন — যদি শেষ শীর্ষবিন্দুটি প্রথমটি পুনরাবৃত্তি করে, সার্ভার যাচাই করার আগে সেই বন্ধ সদৃশটি ফেলে দেয়। ফলস্বরূপ রিং-এ শীর্ষবিন্দু যাচাইকরণ: ৩ থেকে ১০০টি স্বতন্ত্র শীর্ষবিন্দু। রিংটি প্রত্যাখ্যান করা হয় যদি এর বিন্দুগুলি সমরেখ হয়, যদি এর প্রান্তগুলি স্ব-ছেদ করে, অথবা যদি এটি অ্যান্টিমেরিডিয়ান অতিক্রম করে।
updateGeoZone
Anchor link toজিওজোনের বৈশিষ্ট্য আপডেট করে।
POST https://api.pushwoosh.com/json/1.3/updateGeoZoneঅনুরোধের বডি প্যারামিটার
Anchor link to| প্যারামিটার | টাইপ | প্রয়োজনীয় | বিবরণ |
|---|---|---|---|
| auth | string | হ্যাঁ | Pushwoosh কন্ট্রোল প্যানেল থেকে API অ্যাক্সেস টোকেন। |
| geoZoneId | string | হ্যাঁ | /addGeoZone অনুরোধ থেকে প্রাপ্ত জিওজোন আইডি। |
| name | string | না | নতুন জিওজোনের নাম। |
| cooldown | integer | না | আপডেট করার জন্য কুলডাউন, সেকেন্ডে। |
| status | integer | না | ০ - নিষ্ক্রিয়, ১ - সক্রিয়। |
| content | string | না | জিওজোন পুশ নোটিফিকেশনের জন্য বিষয়বস্তু। presetCode এর সাথে ব্যবহার করা যাবে না। |
| cluster | string | না | নতুন ক্লাস্টারের নাম। জিওজোন থেকে ক্লাস্টার আনবাইন্ড করতে null উল্লেখ করুন। |
| campaign | string | না | নতুন ক্যাম্পেইন আইডি। জিওজোন থেকে ক্যাম্পেইন আনবাইন্ড করতে null উল্লেখ করুন। যদি বাদ দেওয়া হয়, ক্যাম্পেইনের মান পরিবর্তন হবে না। একটি প্রিসেট থেকে একটি ক্যাম্পেইনের চেয়ে এর অগ্রাধিকার বেশি। |
| lat | number | না | জিওজোনের অক্ষাংশ। polygon এর সাথে একত্রিত করা যাবে না। |
| lng | number | না | জিওজোনের দ্রাঘিমাংশ। polygon এর সাথে একত্রিত করা যাবে না। |
| range | integer | না | মিটারে নতুন পরিসীমা। polygon এর সাথে একত্রিত করা যাবে না। |
| polygon | object | না | {lat, lng} ভার্টেক্সের নতুন রিং — আকৃতিটি প্রতিস্থাপন করে এবং এটি থেকে lat/lng/range পুনরায় ডিরাইভ করে। দেখুন বহুভুজ জিওজোন। এটি উভয় দিকে কাজ করে: একটি বিদ্যমান বৃত্ত জিওজোনকে বহুভুজে পরিণত করতে এটি পাঠান, অথবা একটি বিদ্যমান বহুভুজ জিওজোনকে বৃত্তে ফিরিয়ে আনতে একটি খালি রিং ({"vertices": []}) পাঠান। আকৃতি অপরিবর্তিত রাখতে polygon সম্পূর্ণভাবে বাদ দিন। addGeoZone এর মতো একই ভার্টেক্স যাচাইকরণ। |
| timetable | object | না | জিওজোনের সময়সূচী। আরও তথ্যের জন্য নিচে দেখুন। |
অনুরোধের উদাহরণ
Anchor link to{ "request": { "auth": "yxoPUlwqm............pIyEX4H", // প্রয়োজনীয়, Pushwoosh কন্ট্রোল থেকে API অ্যাক্সেস টোকেন "geoZoneId": 100016750, // প্রয়োজনীয়, /addGeoZone পদ্ধতি থেকে "name": "new geozone name", // ঐচ্ছিক "cooldown": 222, // সেকেন্ডে, ঐচ্ছিক "status": 0, // ঐচ্ছিক, ০ - নিষ্ক্রিয়, ১ - সক্রিয় "presetCode": "BBBBB-AAAAA", // ঐচ্ছিক, "content" এর সাথে ব্যবহার করা যাবে না "content": "new geozone content", // ঐচ্ছিক, "presetCode" এর সাথে ব্যবহার করা যাবে না "cluster": "GEOZONE CLUSTER CODE", // ঐচ্ছিক। জিওজোন থেকে ক্লাস্টার আনবাইন্ড করতে null উল্লেখ করুন "campaign": "CAMPAIGN_CODE", // ঐচ্ছিক। জিওজোন থেকে ক্যাম্পেইন আনবাইন্ড করতে null উল্লেখ করুন "lat": 10.56, // ঐচ্ছিক, জিওজোনের অক্ষাংশ "lng": 12.523, // ঐচ্ছিক, জিওজোনের দ্রাঘিমাংশ "range": 500, // ঐচ্ছিক, জিওজোনের পরিসীমা "timetable": { // ঐচ্ছিক "timezone": 1234, // সেকেন্ডে "Mon": [ // উপলব্ধ দিন: Mon, Tue, Wed, Thu, Fri, Sat, Sun। পুশ পাঠানো { "start": "04:11", "stop": "12:00" } ], "Sun": [ { // এক বা দুটি ব্যবধান "start": "01:11", "stop": "17:00" }, { "start": "18:01", "stop": "23:59" } ] } }}deleteGeoZone
Anchor link toঅ্যাপ থেকে জিওজোন সরিয়ে দেয়।
POST https://api.pushwoosh.com/json/1.3/deleteGeoZoneঅনুরোধের বডি প্যারামিটার
Anchor link to| প্যারামিটার | টাইপ | প্রয়োজনীয় | বিবরণ |
|---|---|---|---|
| auth | string | হ্যাঁ | Pushwoosh কন্ট্রোল প্যানেল থেকে API অ্যাক্সেস টোকেন। |
| application | string | হ্যাঁ | Pushwoosh অ্যাপ্লিকেশন কোড |
| geozones | string | হ্যাঁ | সরানোর জন্য জিওজোনের আইডিগুলির অ্যারে বা একটি একক আইডি। |
অনুরোধের উদাহরণ
Anchor link to{ "request": { "auth": "yxoPUlwqm............pIyEX4H", // প্রয়োজনীয়, Pushwoosh কন্ট্রোল থেকে API অ্যাক্সেস টোকেন "application": "XXXXX-XXXXX", // প্রয়োজনীয়, Pushwoosh অ্যাপ্লিকেশন কোড "geozones": [550, 526] // প্রয়োজনীয়, জিওজোন আইডি }}addGeoZoneCluster
Anchor link toঅ্যাপে জিওজোন ক্লাস্টার যোগ করে।
POST https://api.pushwoosh.com/json/1.3/addGeoZoneClusterঅনুরোধের বডি প্যারামিটার
Anchor link to| প্যারামিটার | টাইপ | প্রয়োজনীয় | বিবরণ |
|---|---|---|---|
| auth | string | হ্যাঁ | Pushwoosh কন্ট্রোল প্যানেল থেকে API অ্যাক্সেস টোকেন। |
| application | string | হ্যাঁ | Pushwoosh অ্যাপ্লিকেশন কোড |
| name | string | হ্যাঁ | ক্লাস্টারের নাম। |
| cooldown | integer | হ্যাঁ | একজন একক ব্যবহারকারী জিওজোন ক্লাস্টার থেকে একই বার্তা পাওয়ার আগে একটি বিলম্ব, সেকেন্ডে। |
অনুরোধের উদাহরণ
Anchor link to{ "request": { "auth": "yxoPUlwqm............pIyEX4H", // প্রয়োজনীয়, Pushwoosh কন্ট্রোল থেকে API অ্যাক্সেস টোকেন "application": "XXXXX-XXXXX", // প্রয়োজনীয়, Pushwoosh অ্যাপ্লিকেশন কোড "name": "Raccoon city", // প্রয়োজনীয়, ক্লাস্টারের নাম "cooldown": 3210 // প্রয়োজনীয়, সেকেন্ডে }}deleteGeoZoneCluster
Anchor link toঅ্যাপ থেকে একটি জিওজোন ক্লাস্টার সরিয়ে দেয়।
POST https://api.pushwoosh.com/json/1.3/deleteGeoZoneClusterঅনুরোধের বডি প্যারামিটার
Anchor link to| প্যারামিটার | টাইপ | প্রয়োজনীয় | বিবরণ |
|---|---|---|---|
| auth | string | হ্যাঁ | Pushwoosh কন্ট্রোল প্যানেল থেকে API অ্যাক্সেস টোকেন। |
| application | string | হ্যাঁ | Pushwoosh অ্যাপ্লিকেশন কোড |
| geoZoneCluster | string | হ্যাঁ | সরানোর জন্য জিওজোন ক্লাস্টারের আইডি। |
অনুরোধের উদাহরণ
Anchor link to{ "request": { "auth": "yxoPUlwqm............pIyEX4H", // প্রয়োজনীয়, Pushwoosh কন্ট্রোল থেকে API অ্যাক্সেস টোকেন "application": "XXXXX-XXXXX", // প্রয়োজনীয়, Pushwoosh অ্যাপ্লিকেশন কোড "geoZoneCluster": "EA1CE-69405" // প্রয়োজনীয়, /addGeoZoneCluster অনুরোধ থেকে প্রাপ্ত ক্লাস্টার আইডি }}listGeoZones
Anchor link toঅ্যাপের জন্য জিওজোনের একটি তালিকা পুনরুদ্ধার করে।
POST https://api.pushwoosh.com/json/1.3/listGeoZonesঅনুরোধের বডি প্যারামিটার
Anchor link to| প্যারামিটার | টাইপ | প্রয়োজনীয় | বিবরণ |
|---|---|---|---|
| auth | string | হ্যাঁ | Pushwoosh কন্ট্রোল প্যানেল থেকে API অ্যাক্সেস টোকেন। |
| application | string | হ্যাঁ | Pushwoosh অ্যাপ্লিকেশন কোড |
অনুরোধের উদাহরণ
Anchor link to{ "request": { "auth": "yxoPUlwqm............pIyEX4H", // প্রয়োজনীয়, Pushwoosh কন্ট্রোল থেকে API অ্যাক্সেস টোকেন "application": "XXXXX-XXXXX" // প্রয়োজনীয়, Pushwoosh অ্যাপ্লিকেশন কোড }}listGeoZoneClusters
Anchor link toঅ্যাপের জন্য জিওজোন ক্লাস্টারের একটি তালিকা পুনরুদ্ধার করে।
POST https://api.pushwoosh.com/json/1.3/listGeoZoneClustersঅনুরোধের বডি প্যারামিটার
Anchor link to| প্যারামিটার | টাইপ | প্রয়োজনীয় | বিবরণ |
|---|---|---|---|
| auth | string | হ্যাঁ | Pushwoosh কন্ট্রোল প্যানেল থেকে API অ্যাক্সেস টোকেন। |
| application | string | হ্যাঁ | Pushwoosh অ্যাপ্লিকেশন কোড |
অনুরোধের উদাহরণ
Anchor link to{ "request": { "auth": "yxoPUlwqm............pIyEX4H", // প্রয়োজনীয়, Pushwoosh কন্ট্রোল থেকে API অ্যাক্সেস টোকেন "application": "XXXXX-XXXXX" // প্রয়োজনীয়, Pushwoosh অ্যাপ্লিকেশন কোড }}