সেশন টোকেন ব্যবহার করে
বিলিংয়ের উদ্দেশ্যে, সেশন টোকেন ব্যবহারকারীর অটোকমপ্লিট সার্চের কোয়েরি এবং সিলেকশন পর্যায়গুলোকে একটি পৃথক সেশনে একত্রিত করে। নিম্নলিখিত উদাহরণগুলোতে দেখানো হয়েছে কীভাবে অটোকমপ্লিট (নতুন) এবং প্লেস ডিটেইলস (নতুন) কলগুলোতে সেশন টোকেন ব্যবহার করতে হয়।
একটি সেশন টোকেন তৈরি করুন
প্রতিটি সেশনের জন্য স্বতন্ত্র সেশন টোকেন তৈরি করার দায়িত্ব ব্যবহারকারীদের। গুগল ভার্সন ৪ ইউইউআইডি (UUID) ব্যবহারের পরামর্শ দেয়।
একটি স্বয়ংক্রিয় সম্পূর্ণ (নতুন) অনুরোধ করুন
একটি অটোকমপ্লিট (নতুন) অনুরোধ হলো একটি HTTP POST অনুরোধ। অনুরোধের বডি প্যারামিটার সম্পর্কে আরও তথ্যের জন্য, অটোকমপ্লিট (নতুন) অনুরোধসমূহ দেখুন।
নিম্নলিখিত অনুরোধগুলির ক্রমটি দেখাচ্ছে যে একজন ব্যবহারকারী সান ফ্রান্সিসকোতে একটি পিজ্জার দোকান খুঁজছেন। ব্যবহারকারী যখন কোনো কোয়েরি টাইপ করা শুরু করেন, তখন প্রতিটি কীস্ট্রোকের জন্য অটোকমপ্লিট (নিউ) কল করা হয়। তৈরি হওয়া সেশন টোকেনটি প্রতিটি কলে একটি প্যারামিটার হিসেবে পাঠানো হয়।
প্রথম অনুরোধ এবং প্রতিক্রিয়া
অনুরোধ ১
curl -X POST -d '{
"input": "p",
"sessionToken": "3519edfe-0f75-4a30-bfe4-7cbd89340b2c",
"locationBias": {
"circle": {
"center": {
"latitude": 37.7937,
"longitude": -122.3965
},
"radius": 500.0
}
}
}' -H 'Content-Type: application/json' -H "X-Goog-Api-Key: YOUR_API_KEY" \
https://places.googleapis.com/v1/places:autocomplete
প্রতিক্রিয়া ১
{ "suggestions": [ { "placePrediction": { "place": "places/ChIJHSGzi_yAhYARnrPmDWAx9ro", "placeId": "ChIJHSGzi_yAhYARnrPmDWAx9ro", "text": { "text": "PIER 39, The Embarcadero, San Francisco, CA, USA", "matches": [ { "endOffset": 1 } ] }, "structuredFormat": { "mainText": { "text": "PIER 39", "matches": [ { "endOffset": 1 } ] }, "secondaryText": { "text": "The Embarcadero, San Francisco, CA, USA" } }, "types": [ "historical_landmark", "shopping_mall", "point_of_interest", "establishment", "marina", "tourist_attraction" ] } }, ] / ... / }
দ্বিতীয় অনুরোধ এবং প্রতিক্রিয়া
অনুরোধ ২
curl -X POST -d '{
"input": "pi",
"sessionToken": "3519edfe-0f75-4a30-bfe4-7cbd89340b2c",
"locationBias": {
"circle": {
"center": {
"latitude": 37.7937,
"longitude": -122.3965
},
"radius": 500.0
}
}
}' -H 'Content-Type: application/json' -H "X-Goog-Api-Key: YOUR_API_KEY" \
https://places.googleapis.com/v1/places:autocomplete
প্রতিক্রিয়া ২
{ "suggestions": [ { "placePrediction": { "place": "places/ChIJHSGzi_yAhYARnrPmDWAx9ro", "placeId": "ChIJHSGzi_yAhYARnrPmDWAx9ro", "text": { "text": "PIER 39, The Embarcadero, San Francisco, CA, USA", "matches": [ { "endOffset": 2 } ] }, "structuredFormat": { "mainText": { "text": "PIER 39", "matches": [ { "endOffset": 2 } ] }, "secondaryText": { "text": "The Embarcadero, San Francisco, CA, USA" } }, "types": [ "establishment", "point_of_interest", "shopping_mall", "marina", "historical_landmark", "tourist_attraction" ] } }, /.../ ] }
তৃতীয় অনুরোধ এবং প্রতিক্রিয়া
অনুরোধ ৩
curl -X POST -d '{
"input": "piz",
"sessionToken": "3519edfe-0f75-4a30-bfe4-7cbd89340b2c",
"locationBias": {
"circle": {
"center": {
"latitude": 37.7937,
"longitude": -122.3965
},
"radius": 500.0
}
}
}' -H 'Content-Type: application/json' -H "X-Goog-Api-Key: YOUR_API_KEY" https://places.googleapis.com/v1/places:autocomplete
প্রতিক্রিয়া ৩
{ "suggestions": [ { "placePrediction": { "place": "places/ChIJ_QJSSfGAhYARQVFJBNKy3HE", "placeId": "ChIJ_QJSSfGAhYARQVFJBNKy3HE", "text": { "text": "Pizza By The Slice, Grant Avenue, San Francisco, CA, USA", "matches": [ { "endOffset": 3 } ] }, "structuredFormat": { "mainText": { "text": "Pizza By The Slice", "matches": [ { "endOffset": 3 } ] }, "secondaryText": { "text": "Grant Avenue, San Francisco, CA, USA" } }, "types": [ "establishment", "point_of_interest", "food", "pizza_restaurant", "restaurant" ] } }, /.../ ] }
সেশন শেষ করুন
প্লেস ডিটেইলস (নতুন) বা অ্যাড্রেস ভ্যালিডেশন-এর জন্য অনুরোধ করে এবং অটোকমপ্লিট (নতুন) অনুরোধগুলোর জন্য ব্যবহৃত একই সেশন টোকেনটি পাস করে একটি সেশন সমাপ্ত করুন।
একটি স্থানের বিবরণ (নতুন) অনুরোধ করুন
একটি স্থানের বিবরণ (নতুন) অনুরোধ হলো একটি HTTP GET অনুরোধ। অনুরোধের বডি প্যারামিটার সম্পর্কে আরও তথ্যের জন্য, স্থানের বিবরণ (নতুন) অনুরোধসমূহ দেখুন।
নিম্নলিখিত স্থানের বিবরণ (নতুন) অনুরোধটিতে নির্বাচিত স্থানের id এবং পূর্ববর্তী অটোকমপ্লিট (নতুন) কলগুলিতে ব্যবহৃত sessionToken অন্তর্ভুক্ত রয়েছে।
curl -X GET -H 'Content-Type: application/json' \ -H "X-Goog-Api-Key: YOUR_API_KEY" \ -H "X-Goog-FieldMask: id,displayName,accessibilityOptions,businessStatus" \ https://places.googleapis.com/v1/places/ChIJ_QJSSfGAhYARQVFJBNKy3HE?sessionToken=3519edfe-0f75-4a30-bfe4-7cbd89340b2c
ChIJ_QJSSfGAhYARQVFJBNKy3HE প্লেস id ব্যবহার করে, কলটি নিম্নলিখিত JSON প্রতিক্রিয়া তৈরি করে:
{ "id": "ChIJ_QJSSfGAhYARQVFJBNKy3HE", "businessStatus": "OPERATIONAL", "displayName": { "text": "Pizza By The Slice", "languageCode": "en" }, "accessibilityOptions": { "wheelchairAccessibleParking": false, "wheelchairAccessibleEntrance": true } }
ঠিকানা যাচাইকরণের জন্য অনুরোধ করুন
ঠিকানা যাচাইকরণ অনুরোধ হলো একটি HTTP POST অনুরোধ। অনুরোধের বডি প্যারামিটার সম্পর্কে আরও তথ্যের জন্য, "একটি ঠিকানা যাচাইকরণ অনুরোধ পাঠান" দেখুন।
নিম্নলিখিত ঠিকানা যাচাইকরণ অনুরোধটিতে অটোকমপ্লিট (নতুন) প্রতিক্রিয়ারtext ফিল্ডে থাকা নির্বাচিত স্থানের ঠিকানা এবং পূর্ববর্তী অটোকমপ্লিট (নতুন) কলগুলিতে ব্যবহৃত sessionToken অন্তর্ভুক্ত রয়েছে।
curl -X POST -d '{
"sessionToken": "3519edfe-0f75-4a30-bfe4-7cbd89340b2c",
"address": {
"addressLines": "Pizza By The Slice, Grant Avenue, San Francisco, CA, USA"
}
}' \
-H 'Content-Type: application/json' \
"https://addressvalidation.googleapis.com/v1:validateAddress?key=YOUR_API_KEY"
এই কলটি নিম্নলিখিত JSON প্রতিক্রিয়া তৈরি করে:
{ "result": { "verdict": { "inputGranularity": "PREMISE", "validationGranularity": "PREMISE", "geocodeGranularity": "PREMISE", "hasInferredComponents": true }, "address": { "formattedAddress": "Pizza By The Slice, Grant Avenue, San Francisco, CA 94133, USA", "postalAddress": { "regionCode": "US", "languageCode": "en", "postalCode": "94133", "administrativeArea": "CA", "locality": "San Francisco", "addressLines": [ "Pizza By The Slice", "Grant Ave" ] }, "addressComponents": [ { "componentName": { "text": "Pizza By The Slice", "languageCode": "en" }, "componentType": "point_of_interest", "confirmationLevel": "CONFIRMED" }, { "componentName": { "text": "Grant Avenue", "languageCode": "en" }, "componentType": "route", "confirmationLevel": "CONFIRMED" }, { "componentName": { "text": "San Francisco", "languageCode": "en" }, "componentType": "locality", "confirmationLevel": "CONFIRMED" }, { "componentName": { "text": "CA", "languageCode": "en" }, "componentType": "administrative_area_level_1", "confirmationLevel": "CONFIRMED" }, { "componentName": { "text": "USA", "languageCode": "en" }, "componentType": "country", "confirmationLevel": "CONFIRMED" }, { "componentName": { "text": "94133" }, "componentType": "postal_code", "confirmationLevel": "CONFIRMED", "inferred": true } ], "missingComponentTypes": [ "street_number" ] }, "geocode": { "location": { "latitude": 37.800504, "longitude": -122.4074794 }, "plusCode": { "globalCode": "849VRH2V+62" }, "bounds": { "low": { "latitude": 37.800504, "longitude": -122.4074794 }, "high": { "latitude": 37.800504, "longitude": -122.4074794 } }, "featureSizeMeters": 10, "placeId": "ChIJ_QJSSfGAhYARQVFJBNKy3HE", "placeTypes": [ "food", "restaurant", "point_of_interest", "establishment" ] }, "uspsData": { "standardizedAddress": { "firstAddressLine": "PIZZA BY THE SLICE", "secondAddressLine": "GRANT AVE", "cityStateZipAddressLine": "SAN FRANCISCO", "city": "SAN FRANCISCO", "state": "CA", "zipCode": "94133" }, "dpvFootnote": "A1M1", "postOfficeCity": "SAN FRANCISCO", "postOfficeState": "CA" } }, "responseId": "4b669675-2c3b-463a-ae20-400248cf6ac9" }
একটি সেশন ত্যাগ করুন
ব্যবহারকারী সেশনটি পরিত্যাগ করলে তা সমাপ্ত হয়। উদাহরণস্বরূপ, যদি কোনো ব্যবহারকারী একটি পিজ্জার দোকান খোঁজা শুরু করে কিন্তু কোনো জায়গা নির্বাচন না করে (যা একটি ‘প্লেস ডিটেইলস (নিউ)’ কল ট্রিগার করে) অথবা ঠিকানা যাচাই না করে (যা একটি ‘অ্যাড্রেস ভ্যালিডেশন’ কল ট্রিগার করে), তাহলে সেশনটি সমাপ্ত হয়ে যায় এবং সেশন টোকেনটির মেয়াদ শেষ হয়ে যায়।