सेशन टोकन का इस्तेमाल करना
सेशन टोकन, उपयोगकर्ता की ऑटोकंप्लीट खोज की क्वेरी और चुनने के चरणों को बिलिंग के मकसद से एक अलग सेशन में ग्रुप करते हैं. यहां दिए गए उदाहरणों से पता चलता है कि ऑटोकंप्लीट (नया) और जगह की जानकारी (नया) कॉल में सेशन टोकन का इस्तेमाल कैसे किया जाता है.
सेशन टोकन बनाना
हर सेशन के लिए यूनीक सेशन टोकन जनरेट करने की ज़िम्मेदारी उपयोगकर्ताओं की होती है. Google, वर्शन 4 यूयूआईडी इस्तेमाल करने का सुझाव देता है.
Autocomplete (New) का अनुरोध करना
ऑटोकंप्लीट (नया) अनुरोध, एचटीटीपी पोस्ट अनुरोध होता है. अनुरोध के मुख्य हिस्से के पैरामीटर के बारे में ज़्यादा जानकारी के लिए, ऑटोकंप्लीट (नया) अनुरोध देखें.
अनुरोधों की इस सीरीज़ में, सैन फ़्रांसिस्को में पिज़्ज़ा की दुकान खोजने वाले उपयोगकर्ता को दिखाया गया है. जब उपयोगकर्ता कोई क्वेरी टाइप करना शुरू करता है, तो हर कीस्ट्रोक के लिए ऑटोकंप्लीट (नया) को कॉल किया जाता है. जनरेट किए गए सेशन टोकन को हर कॉल में पैरामीटर के तौर पर पास किया जाता है.
पहला अनुरोध और जवाब
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
जवाब 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" ] } }, /.../ ] }
सेशन खत्म करना
Place Details (New) या Address Validation को अनुरोध करके, सेशन को खत्म करें. साथ ही, वही सेशन टोकन पास करें जिसका इस्तेमाल आपने Autocomplete (New) के अनुरोधों के लिए किया था.
जगह की जानकारी (नई) का अनुरोध करना
Place Details (New) का अनुरोध, एचटीटीपी जीईटी अनुरोध होता है. अनुरोध के मुख्य हिस्से के पैरामीटर के बारे में ज़्यादा जानने के लिए, जगह की जानकारी (नया) के अनुरोध देखें.
जगह की जानकारी (नया) के इस अनुरोध में, चुनी गई जगह का 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 का अनुरोध, एचटीटीपी पोस्ट अनुरोध होता है. अनुरोध के मुख्य हिस्से के पैरामीटर के बारे में ज़्यादा जानने के लिए, पते की पुष्टि करने का अनुरोध भेजना लेख पढ़ें.
Address Validation के इस अनुरोध में, चुनी गई जगह का पता शामिल है. यह पता, Autocomplete (New) के रिस्पॉन्स केtext फ़ील्ड में मिलता है. साथ ही, इसमें Autocomplete (New) के पिछले कॉल में इस्तेमाल किया गया 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" }
सेशन छोड़ना
अगर उपयोगकर्ता सेशन को छोड़ देता है, तो सेशन खत्म हो जाता है. उदाहरण के लिए, अगर कोई उपयोगकर्ता पिज़्ज़ा की दुकान खोजना शुरू करता है, लेकिन कोई जगह नहीं चुनता (Place Details (New) कॉल को ट्रिगर करता है) या पते की पुष्टि नहीं करता (Address Validation कॉल को ट्रिगर करता है), तो सेशन खत्म हो जाता है और सेशन टोकन की समयसीमा खत्म हो जाती है.