সেশন টোকেন ব্যবহার করা
সেশন টোকেন, বিলিংয়ের উদ্দেশ্যে ব্যবহারকারীর অটোমেটিক সম্পূর্ণ হওয়া সার্চের কোয়েরি ও বেছে নেওয়ার ধাপগুলিকে একটি পৃথক সেশনে গ্রুপ করে। নিচের উদাহরণে দেখানো হয়েছে যে কীভাবে 'অটোমেটিক সম্পূর্ণ' (নতুন) এবং 'জায়গার বিবরণ' (নতুন) কলে সেশন টোকেন ব্যবহার করতে হয়।
সেশন টোকেন তৈরি করুন
প্রতিটি সেশনের জন্য অনন্য সেশন টোকেন জেনারেট করার দায়িত্ব ব্যবহারকারীর। Google ভার্সন ৪ UUID ব্যবহার করার সাজেশন দেয়।
Autocomplete (নতুন) অনুরোধ করুন
অটোকমপ্লিট (নতুন) অনুরোধ হল একটি HTTP POST অনুরোধ। অনুরোধের বডি প্যারামিটার সম্পর্কে আরও তথ্য পেতে, অটোমেটিক সম্পূর্ণ হওয়া (নতুন) অনুরোধ দেখুন।
নিম্নলিখিত অনুরোধের সিরিজ থেকে বোঝা যায় যে একজন ব্যবহারকারী সান ফ্রান্সিসকোতে পিৎজার দোকান খুঁজছেন। ব্যবহারকারী কোয়েরি টাইপ করা শুরু করলে, প্রতিটি কীস্ট্রোকের জন্য অটোকমপ্লিট (নতুন) কল করা হয়। জেনারেট করা সেশন টোকেন প্রতিটি কলে প্যারামিটার হিসেবে পাস করা হয়।
প্রথম অনুরোধ ও উত্তর
Request 1
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
Response 1
{ "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" ] } }, ] / ... / }
দ্বিতীয় অনুরোধ ও উত্তর
Request 2
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" ] } }, /.../ ] }
তৃতীয় অনুরোধ ও উত্তর
Request 3
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" ] } }, /.../ ] }
সেশন শেষ করুন
জায়গার বিবরণ (নতুন) বা Address Validation-এ অনুরোধ করে এবং Autocomplete (নতুন) অনুরোধের জন্য আপনি যে সেশন টোকেন ব্যবহার করেছেন সেটি পাস করে সেশন শেষ করুন।
জায়গার বিবরণ (নতুন) সংক্রান্ত অনুরোধ করা
জায়গার বিবরণ (নতুন) সংক্রান্ত অনুরোধ হল একটি 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 } }
Address Validation সংক্রান্ত অনুরোধ করা
Address Validation অনুরোধ হল একটি HTTP POST অনুরোধ। অনুরোধের বডি প্যারামিটার সম্পর্কে আরও তথ্যের জন্য, ঠিকানা যাচাইকরণের অনুরোধ পাঠান দেখুন।
নিম্নলিখিত Address Validation অনুরোধে বেছে নেওয়া জায়গার ঠিকানা অন্তর্ভুক্ত থাকে, যা অটোকমপ্লিট (নতুন) উত্তরের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" }
সেশন বাতিল করা
ব্যবহারকারী সেশন ছেড়ে বেরিয়ে গেলে সেশন বন্ধ হয়ে যায়। যেমন, কোনও ব্যবহারকারী পিৎজার দোকান সার্চ করা শুরু করলেও কোনও জায়গা বেছে নেননি (জায়গার বিবরণ (নতুন) কল ট্রিগার করা) অথবা ঠিকানা যাচাই করেননি (ঠিকানা যাচাইকরণ কল ট্রিগার করা), তাহলে সেশন শেষ হয়ে যায় এবং সেশন টোকেনের মেয়াদ শেষ হয়ে যায়।