Menggunakan token sesi
Token sesi mengelompokkan fase kueri dan pemilihan dari pelengkapan otomatis pengguna menelusuri ke sesi terpisah untuk tujuan penagihan. Contoh berikut menunjukkan cara menggunakan token sesi dalam panggilan Autocomplete (Baru) dan Place Details (Baru).
Membuat token sesi
Pengguna bertanggung jawab untuk membuat token sesi yang unik untuk setiap sesi. Google merekomendasikan penggunaan UUID versi 4.
Membuat permintaan Autocomplete (Baru)
Permintaan Autocomplete (Baru) adalah permintaan HTTP POST. Untuk informasi selengkapnya terkait parameter isi permintaan, lihat permintaan Place Autocomplete (Baru).
Rangkaian permintaan berikut menunjukkan pengguna yang sedang menelusuri toko pizza di Bandung Francisco. Saat pengguna mulai mengetik kueri, Autocomplete (Baru) akan dipanggil untuk setiap penekanan tombol. Token sesi yang dibuat akan diteruskan sebagai parameter di setiap panggilan telepon.
Permintaan dan respons pertama
Permintaan 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
Respons 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" ] } }, ] / ... / }
Permintaan dan respons kedua
Permintaan 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
Respons 2
{ "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" ] } }, /.../ ] }
Permintaan dan respons ketiga
Permintaan 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
Respons 3
{ "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" ] } }, /.../ ] }
Akhiri sesi
Menghentikan sesi dengan membuat permintaan ke Place Details (Baru) atau Alamat Validasi dan penerusan token sesi yang sama dengan yang Anda gunakan untuk Autocomplete Permintaan (Baru).
Membuat permintaan Place Details (Baru)
Permintaan Place Details (Baru) adalah permintaan GET HTTP. Untuk mengetahui informasi selengkapnya tentang parameter isi permintaan, lihat permintaan Place Details (Baru).
Permintaan Place Details (Baru) berikut menyertakan id
dan tempat yang dipilih
sessionToken
yang digunakan dalam panggilan Autocomplete (Baru) sebelumnya.
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
Menggunakan tempat id
dari ChIJ_QJSSfGAhYARQVFJBNKy3HE
, panggilan akan menghasilkan
berikut respons JSON:
{ "id": "ChIJ_QJSSfGAhYARQVFJBNKy3HE", "businessStatus": "OPERATIONAL", "displayName": { "text": "Pizza By The Slice", "languageCode": "en" }, "accessibilityOptions": { "wheelchairAccessibleParking": false, "wheelchairAccessibleEntrance": true } }
Membuat permintaan Validasi Alamat
Permintaan Validasi Alamat adalah permintaan POST HTTP. Untuk informasi selengkapnya terkait parameter isi permintaan, lihat Mengirim permintaan validasi alamat.
Permintaan Validasi Alamat berikut menyertakan alamat yang dipilih yang ditemukan di kolomtext
respons Autocomplete (Baru), dan
sessionToken
digunakan dalam panggilan Autocomplete (Baru) sebelumnya.
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"
Panggilan tersebut menghasilkan respons JSON berikut:
{ "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" }
Mengabaikan sesi
Sesi berakhir jika pengguna meninggalkan sesi tersebut. Misalnya, jika pengguna mulai mencari toko pizza tetapi tidak memilih tempat (memicu Panggilan Place Details (Baru) atau memvalidasi alamat (memicu Alamat Panggilan validasi), sesi akan dihentikan dan masa berlaku token sesi berakhir.