หากต้องการทําตามขั้นตอนที่จําเป็นในการเรียก API ของ Street View Publish ให้ทําตามขั้นตอนในบทแนะนํานี้
การเรียกใช้ HTTP
สามารถเรียกใช้ Street View Publish API โดยใช้เครื่องมือหลายรายการ เช่น curl, wget และ Postman ในกรณีส่วนใหญ่ คุณควรใช้ภาษาเขียนโปรแกรมที่คุณเลือกเพื่อสร้างแอปพลิเคชันไคลเอ็นต์ที่ใช้ API แต่บทแนะนํานี้จะแนะนําขั้นตอนพื้นฐานโดยแนะนําแต่ละคําสั่งแก่คุณ
นอกจากนี้ เรายังมีไลบรารีของไคลเอ็นต์บางส่วนหากคุณไม่ต้องการโทรออกไปยัง HTTP โดยตรง
สิ่งที่ต้องมีก่อน
-
คุณต้องมีบัญชี Google เพื่อเข้าถึงคอนโซล Google API และขอคีย์ API และลงทะเบียนแอปพลิเคชันของคุณ
-
สร้างโปรเจ็กต์ใน Google Developers Console และรับข้อมูลเข้าสู่ระบบการให้สิทธิ์เพื่อให้แอปพลิเคชันส่งคําขอ API ได้
-
หลังจากสร้างโปรเจ็กต์แล้ว ให้ตรวจสอบว่า Street View Publish API เป็นบริการใดบริการหนึ่งที่แอปพลิเคชันได้ลงทะเบียนไว้ให้ใช้
- ไปที่คอนโซล API แล้วเลือกโปรเจ็กต์ที่คุณเพิ่งลงทะเบียน
- ไปที่หน้า API ที่เปิดใช้ ตรวจดูว่า Google Street View API อยู่ในรายการ API ที่เปิดใช้แล้ว หากไม่ใช่ ให้เปิดไลบรารี API และเปิดใช้ API
-
อ่านคู่มือการตรวจสอบสิทธิ์ เพื่อดูวิธีนําการให้สิทธิ์ OAuth 2.0 ไปใช้
-
ทําความคุ้นเคยกับแนวคิดหลักของรูปแบบข้อมูล JavaScript Object Notation (JSON) JSON คือรูปแบบข้อมูลที่พบได้ทั่วไปและไม่ขึ้นอยู่กับภาษาที่นําเสนอการนําเสนอข้อความอย่างมีโครงสร้างของโครงสร้างข้อมูลที่กําหนดเอง สำหรับข้อมูลเพิ่มเติม โปรดดู json.org
รับคีย์ API
เพื่อจุดประสงค์ด้านการตรวจสอบสิทธิ์และโควต้า คุณจะต้องใช้ Google Street View Publish API ด้วยข้อมูลเข้าสู่ระบบที่สร้างจาก Developers Console
- ไปที่หน้าข้อมูลเข้าสู่ระบบใน Developers Console
- หากมีคีย์ API อยู่แล้ว คุณจะใช้คีย์นั้นได้ หรือสร้างคีย์ใหม่โดยเลือกคีย์ API จากเมนูข้อมูลเข้าสู่ระบบใหม่
รับโทเค็นเพื่อการเข้าถึง
- ไปที่ Google Developers OAuth 2.0 Playground
- คลิกเมนูการตั้งค่า (ไอคอนรูปเฟืองที่ด้านขวาบน) แล้วเลือกใช้ข้อมูลเข้าสู่ระบบ OAuth ของคุณเอง จากนั้นป้อน
Client ID
และClient secret
ในช่องที่เกี่ยวข้อง แล้วคลิกปิด - ในส่วนขั้นตอนที่ 1: เลือกและให้สิทธิ์ API ให้ป้อนขอบเขตของ API
https://www.googleapis.com/auth/streetviewpublish
ในช่องป้อนขอบเขตของคุณเอง จากนั้นคลิกให้สิทธิ์ API หน้าใหม่จะเปิดขึ้นเพื่อยืนยันว่าคุณต้องการให้สิทธิ์ API - คลิกรหัสการให้สิทธิ์ของ Exchange สําหรับโทเค็น ข้อมูลจะปรากฏในช่องโทเค็นเพื่อการเข้าถึง ซึ่งจะมีโทเค็นเพื่อการเข้าถึงเพื่อใช้ในขั้นตอนถัดไป โทเค็นเพื่อการเข้าถึงจะหมดอายุใน 60 นาที คุณสามารถเลือกตัวเลือกเพื่อรีเฟรชโทเค็นโดยอัตโนมัติก่อนหมดอายุ ซึ่งจะสร้างโทเค็นใหม่
ส่งคําขอ HTTP
เมื่อมีคีย์ API และโทเค็นเพื่อการเข้าถึงแล้ว คุณจะเรียกใช้คําสั่งต่อไปนี้ใน Shell เพื่อเรียกใช้ HTTP กับบริการได้ ในตัวอย่างด้านล่าง เราทําการเรียกใช้เมธอด /v1/photo:startUpload
$ curl --request POST \ --url 'https://streetviewpublish.googleapis.com/v1/photo:startUpload?key=YOUR_API_KEY' \ --header 'authorization: Bearer YOUR_ACCESS_TOKEN' \ --header 'Content-Length: 0'
ตัวอย่างคําขอ
เมื่อคุณคุ้นเคยกับการส่งคําขอ HTTP ข้างต้นแล้ว ให้ลองใช้วิธีอื่นๆ เพิ่มเติม การโทรต่างๆ จะแสดงอยู่ด้านล่าง
กําลังเรียกดูรายการรูปภาพ
$ curl --request GET \ --url 'https://streetviewpublish.googleapis.com/v1/photos?key=YOUR_API_KEY' \ --header 'authorization: Bearer YOUR_ACCESS_TOKEN'
ถ่ายรูป
$ curl --request GET \ --url 'https://streetviewpublish.googleapis.com/v1/photo/PHOTO_ID?key=YOUR_API_KEY' \ --header 'authorization: Bearer YOUR_ACCESS_TOKEN'
การอัปโหลดรูปภาพ
การสร้างรูปภาพจําเป็นต้องมีการโทรแยกกัน 3 ครั้ง การเรียกครั้งแรกจะแสดงผล URL การอัปโหลดซึ่งใช้ในการเรียกการอัปโหลดรูปภาพเป็นครั้งที่ 2 หลังจากอัปโหลดไบต์รูปภาพแล้ว การเรียกครั้งที่ 3 จะอัปโหลดข้อมูลเมตาของรูปภาพและแสดงผลบัตรประจําตัวที่มีรูปถ่าย
- ขอ URL อัปโหลด
$ curl --request POST \ --url 'https://streetviewpublish.googleapis.com/v1/photo:startUpload?key=YOUR_API_KEY' \ --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \ --header 'Content-Length: 0'
- อัปโหลดไบต์รูปภาพไปยัง URL ที่อัปโหลด
$ curl --request POST \ --url 'UPLOAD_URL' \ --upload-file 'PATH_TO_FILE' \ --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'
- อัปโหลดข้อมูลเมตาของรูปภาพ
$ curl --request POST \ --url 'https://streetviewpublish.googleapis.com/v1/photo?key=YOUR_API_KEY' \ --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \ --header 'Content-Type: application/json' \ --data '{ "uploadReference": { "uploadUrl": "UPLOAD_URL" }, "pose": { "heading": 105.0, "latLngPair": { "latitude": 46.7512623, "longitude": -121.9376983 } }, "captureTime": { "seconds": 1483202694 }, }'
กําลังอัปเดตรูปภาพ
$ curl --request PUT \ --url 'https://streetviewpublish.googleapis.com/v1/photo/PHOTO_ID?key=YOUR_API_KEY&updateMask=pose.latLngPair' \ --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \ --header 'Content-Type: application/json' \ --data '{ "pose": { "latLngPair": { "latitude": 46.7512624, "longitude": -121.9376982 } } }'
การอัปเดตรูปภาพหลายรูปพร้อมกัน
$ curl --request POST \ --url 'https://streetviewpublish.googleapis.com/v1/photos:batchUpdate?key=YOUR_API_KEY' \ --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \ --header 'Content-Type: application/json' \ --data '{ "updatePhotoRequests": [ { "photo": { "photoId": { "id": "FIRST_PHOTO_ID" }, "pose": { "latLngPair": { "latitude": 37.1701638, "longitude": -122.3624387 } } }, "updateMask": "pose.latLngPair" }, { "photo": { "photoId": { "id": "SECOND_PHOTO_ID" }, "pose": { "latLngPair": { "latitude": 37.1685704, "longitude": -122.3618021 } } }, "updateMask": "pose.latLngPair" } ] }'
การลบรูปภาพ
$ curl --request DELETE \ --url 'https://streetviewpublish.googleapis.com/v1/photo/PHOTO_ID?key=YOUR_API_KEY' \ --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'
updateMask คืออะไร
updateMask
เป็นวิธีรักษาคําขอที่มีขนาดเล็กไว้หากต้องการอัปเดตบางส่วนของรูปภาพแทนการอัปเดตทั้งหมด หากไม่มี updateMask
คําขอจะอัปเดตรูปภาพทั้งหมด ซึ่งหมายความว่าหากคุณไม่ตั้งค่า updateMask
และคําขอไม่มี pose
ระบบจะล้างรูปภาพของ pose
ค่าที่เป็นไปได้สําหรับ updateMask
คือ places, pose.heading, pose.latlngpair, pose.level,
connections
คุณจะใส่ค่าที่คั่นด้วยเครื่องหมายจุลภาคหลายค่าใน updateMask
ได้