การใช้โทเค็นเซสชัน
โทเค็นเซสชันจะจัดกลุ่มขั้นตอนการค้นหาและการเลือกของการเติมข้อความอัตโนมัติของผู้ใช้ ค้นหาในเซสชันที่แยกกันโดยสิ้นเชิงเพื่อจุดประสงค์ในการเรียกเก็บเงิน ตัวอย่างต่อไปนี้จะแสดง วิธีใช้โทเค็นเซสชันในการเรียกใช้การเติมข้อความอัตโนมัติ (ใหม่) และรายละเอียดสถานที่ (ใหม่)
สร้างโทเค็นเซสชัน
ผู้ใช้มีหน้าที่สร้างโทเค็นของเซสชันที่ไม่ซ้ำกันสำหรับแต่ละเซสชัน Google ขอแนะนำให้ใช้ UUID เวอร์ชัน 4
สร้างคำขอเติมข้อความอัตโนมัติ (ใหม่)
คำขอเติมข้อความอัตโนมัติ (ใหม่) เป็นคำขอ HTTP POST หากต้องการดูข้อมูลเพิ่มเติม เกี่ยวกับพารามิเตอร์เนื้อหาของคำขอ โปรดดูคำขอเติมข้อความอัตโนมัติเกี่ยวกับสถานที่ (ใหม่)
คำขอชุดต่อไปนี้แสดงให้เห็นว่าผู้ใช้กำลังค้นหาร้านพิซซ่าในซานตาคลอส ฟรานซิสโก ขณะที่ผู้ใช้เริ่มพิมพ์ข้อความค้นหา ระบบจะเรียกใช้การเติมข้อความอัตโนมัติ (ใหม่) แต่ละครั้ง ระบบจะส่งโทเค็นเซสชันที่สร้างขึ้นเป็นพารามิเตอร์ในแต่ละโทเค็น การโทร
คำขอและการตอบกลับแรก
คำขอ 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" ] } }, ] / ... / }
คำขอและการตอบกลับครั้งที่ 2
คำขอ 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
คำตอบที่ 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" ] } }, /.../ ] }
คำขอและการตอบกลับครั้งที่ 3
คำขอ 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
คำตอบที่ 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" ] } }, /.../ ] }
สิ้นสุดเซสชัน
สิ้นสุดเซสชันโดยการส่งคำขอไปยังรายละเอียดสถานที่ (ใหม่) หรือที่อยู่ การตรวจสอบและการส่งผ่านโทเค็นเซสชันเดียวกับที่คุณใช้สำหรับการเติมข้อความอัตโนมัติ (ใหม่)
สร้างคำขอรายละเอียดสถานที่ (ใหม่)
คำขอรายละเอียดสถานที่ (ใหม่) เป็นคำขอ 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
เมื่อใช้ตำแหน่ง id
จาก ChIJ_QJSSfGAhYARQVFJBNKy3HE
การโทรจะสร้าง
การตอบสนอง JSON ต่อไปนี้:
{ "id": "ChIJ_QJSSfGAhYARQVFJBNKy3HE", "businessStatus": "OPERATIONAL", "displayName": { "text": "Pizza By The Slice", "languageCode": "en" }, "accessibilityOptions": { "wheelchairAccessibleParking": false, "wheelchairAccessibleEntrance": true } }
ส่งคำขอตรวจสอบที่อยู่
คำขอการตรวจสอบที่อยู่เป็นคำขอ HTTP POST หากต้องการดูข้อมูลเพิ่มเติม เกี่ยวกับพารามิเตอร์เนื้อหาของคำขอ โปรดดูหัวข้อส่งคำขอตรวจสอบที่อยู่
คำขอตรวจสอบที่อยู่ต่อไปนี้มีที่อยู่ของ ที่อยู่ในช่อง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" }
ยกเลิกเซสชัน
เซสชันจะสิ้นสุดลงหากผู้ใช้ยกเลิกเซสชัน เช่น หากผู้ใช้ เริ่มค้นหาร้านพิซซ่าแต่ไม่ได้เลือกสถานที่ (ซึ่งเรียก การเรียกรายละเอียดสถานที่ (ใหม่) หรือตรวจสอบความถูกต้องของที่อยู่ (การทริกเกอร์ที่อยู่) การโทรเพื่อตรวจสอบความถูกต้อง) เซสชันจะสิ้นสุดลงและโทเค็นของเซสชันจะหมดอายุ