Oturum jetonlarını kullanma
Oturum jetonları, bir kullanıcı otomatik tamamlama aramasının sorgu ve seçim aşamalarını faturalandırma amacıyla ayrı bir oturumda gruplandırır. Aşağıdaki örneklerde, Otomatik Tamamlama (Yeni) ve Yer Ayrıntıları (Yeni) çağrılarında oturum jetonlarının nasıl kullanılacağı gösterilmektedir.
Oturum jetonu oluşturma
Kullanıcılar her oturum için benzersiz oturum jetonları oluşturmaktan 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) isteklerine bakın.
Aşağıdaki istek dizisinde, İstanbul'da pizzacı arayan bir kullanıcı gösterilmektedir. Kullanıcı bir sorgu yazmaya başladığında, her tuş vuruşu için Otomatik Tamamlama (Yeni) işlevi çağrılır. Oluşturulan oturum jetonu her çağrıda bir parametre olarak iletilir.
İlk istek ve yanıt
İstek 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
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
İstek 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
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
İstek 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
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ğrulama isteğinde 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 bulunun
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 yere ait id
ve önceki Otomatik Tamamlama (Yeni) çağrılarında kullanılan sessionToken
öğelerini 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
Çağrı, id
/ChIJ_QJSSfGAhYARQVFJBNKy3HE
yeri kullanılarak 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övdesi 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; Otomatik Tamamlama (Yeni) yanıtınıntext
alanında bulunan seçili yerin adresini 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 ayrılma
Kullanıcı oturumu terk ederse oturum sonlandırılır. Örneğin, kullanıcı bir pizzacı aramaya başlar ancak yer seçmez (Yer Ayrıntıları (Yeni) çağrısını tetikler) veya adresi doğrulayamazsa (Adres Doğrulama çağrısı tetiklenerek) oturum sonlandırılır ve oturum jetonunun süresi dolar.