Oturum jetonlarını kullanma
Oturum jetonları, faturalandırma amacıyla bir kullanıcı otomatik tamamlama aramasının sorgu ve seçim aşamalarını ayrı bir oturumda gruplandırır. Aşağıdaki örneklerde, Otomatik Tamamlama (Yeni) ve Yer Ayrıntıları (Yeni) aramalarında oturum jetonlarının nasıl kullanılacağı gösterilmektedir.
Oturum jetonu oluşturma
Her oturum için benzersiz oturum jetonları oluşturmaktan kullanıcılar sorumludur. Google, sürüm 4 UUID'lerinin kullanılmasını önerir.
Otomatik tamamlama (Yeni) isteğinde bulunma
Otomatik Tamamlama (Yeni) isteği bir HTTP POST isteğidir. İstek gövde parametreleri hakkında daha fazla bilgi için Otomatik Yer Tamamlama (Yeni) istekleri bölümüne bakın.
Aşağıdaki istek dizisinde, San Francisco'da pizza restoranı arayan bir kullanıcı gösterilmektedir. Kullanıcı bir sorgu yazmaya başladığında, her tuş vuruşu için Otomatik Tamamlama (Yeni) çağrılır. Oluşturulan oturum jetonu her çağrıda parametre olarak iletilir.
İlk istek ve yanıt
1. İstek
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
Yanıt 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" ] } }, ] / ... / }
İkinci istek ve yanıt
2. İstek
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
Yanıt 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" ] } }, /.../ ] }
Üçüncü istek ve yanıt
3. İstek
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
Yanıt 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" ] } }, /.../ ] }
Oturumu sonlandır
Yer Ayrıntıları (Yeni) veya Adres Doğrulaması için istekte bulunup Otomatik Tamamlama (Yeni) istekleri için kullandığınız oturum jetonunu ileterek bir oturumu sonlandırın.
Yer Ayrıntıları (Yeni) isteğinde bulunma
Yer Ayrıntıları (Yeni) isteği bir HTTP GET isteğidir. İstek gövde parametreleri hakkında daha fazla bilgi için Yer Ayrıntıları (Yeni) isteklerine bakın.
Aşağıdaki Yer Ayrıntıları (Yeni) isteği, seçilen yerin id
ve önceki Otomatik Tamamlama (Yeni) çağrılarında
kullanılan sessionToken
bilgilerini içerir.
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
id
/ChIJ_QJSSfGAhYARQVFJBNKy3HE
kullanıldığında çağrı aşağıdaki JSON yanıtını oluşturur:
{ "id": "ChIJ_QJSSfGAhYARQVFJBNKy3HE", "businessStatus": "OPERATIONAL", "displayName": { "text": "Pizza By The Slice", "languageCode": "en" }, "accessibilityOptions": { "wheelchairAccessibleParking": false, "wheelchairAccessibleEntrance": true } }
Adres Doğrulama isteğinde bulunma
Adres Doğrulama isteği bir HTTP POST isteğidir. İstek gövde parametreleri hakkında daha fazla bilgi için Adres doğrulama isteği gönderme bölümüne bakın.
Aşağıdaki Adres Doğrulama isteği, seçilen yerin adresini Otomatik tamamlama (Yeni) yanıtınıntext
alanında bulunan adresi ve önceki Otomatik Tamamlama (Yeni) çağrılarında kullanılan sessionToken
adresini içerir.
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"
Çağrı, aşağıdaki JSON yanıtını oluşturur:
{ "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" }
Oturumdan vazgeçme
Kullanıcı oturumu terk ederse oturum sonlandırılır. Örneğin, bir kullanıcı bir pizza restoranını aramaya başlar ancak yer seçmez (yer Ayrıntıları (Yeni) çağrısı tetikler) veya adresi doğrulamaz (Adres Doğrulama çağrısı tetiklenirse) oturum sonlandırılır ve oturum jetonunun süresi dolar.