เรียกใช้ API ครั้งแรก

หากต้องการทําตามขั้นตอนที่จําเป็นในการเรียก API ของ Street View Publish ให้ทําตามขั้นตอนในบทแนะนํานี้

การเรียกใช้ HTTP

สามารถเรียกใช้ Street View Publish API โดยใช้เครื่องมือหลายรายการ เช่น curl, wget และ Postman ในกรณีส่วนใหญ่ คุณควรใช้ภาษาเขียนโปรแกรมที่คุณเลือกเพื่อสร้างแอปพลิเคชันไคลเอ็นต์ที่ใช้ API แต่บทแนะนํานี้จะแนะนําขั้นตอนพื้นฐานโดยแนะนําแต่ละคําสั่งแก่คุณ

นอกจากนี้ เรายังมีไลบรารีของไคลเอ็นต์บางส่วนหากคุณไม่ต้องการโทรออกไปยัง HTTP โดยตรง

สิ่งที่ต้องมีก่อน

  1. คุณต้องมีบัญชี Google เพื่อเข้าถึงคอนโซล Google API และขอคีย์ API และลงทะเบียนแอปพลิเคชันของคุณ

  2. สร้างโปรเจ็กต์ใน Google Developers Console และรับข้อมูลเข้าสู่ระบบการให้สิทธิ์เพื่อให้แอปพลิเคชันส่งคําขอ API ได้

  3. หลังจากสร้างโปรเจ็กต์แล้ว ให้ตรวจสอบว่า Street View Publish API เป็นบริการใดบริการหนึ่งที่แอปพลิเคชันได้ลงทะเบียนไว้ให้ใช้

    1. ไปที่คอนโซล API แล้วเลือกโปรเจ็กต์ที่คุณเพิ่งลงทะเบียน
    2. ไปที่หน้า API ที่เปิดใช้ ตรวจดูว่า Google Street View API อยู่ในรายการ API ที่เปิดใช้แล้ว หากไม่ใช่ ให้เปิดไลบรารี API และเปิดใช้ API
  4. อ่านคู่มือการตรวจสอบสิทธิ์ เพื่อดูวิธีนําการให้สิทธิ์ OAuth 2.0 ไปใช้

  5. ทําความคุ้นเคยกับแนวคิดหลักของรูปแบบข้อมูล JavaScript Object Notation (JSON) JSON คือรูปแบบข้อมูลที่พบได้ทั่วไปและไม่ขึ้นอยู่กับภาษาที่นําเสนอการนําเสนอข้อความอย่างมีโครงสร้างของโครงสร้างข้อมูลที่กําหนดเอง สำหรับข้อมูลเพิ่มเติม โปรดดู json.org

รับคีย์ API

เพื่อจุดประสงค์ด้านการตรวจสอบสิทธิ์และโควต้า คุณจะต้องใช้ Google Street View Publish API ด้วยข้อมูลเข้าสู่ระบบที่สร้างจาก Developers Console

  1. ไปที่หน้าข้อมูลเข้าสู่ระบบใน Developers Console
  2. หากมีคีย์ API อยู่แล้ว คุณจะใช้คีย์นั้นได้ หรือสร้างคีย์ใหม่โดยเลือกคีย์ API จากเมนูข้อมูลเข้าสู่ระบบใหม่

รับโทเค็นเพื่อการเข้าถึง

  1. ไปที่ Google Developers OAuth 2.0 Playground
  2. คลิกเมนูการตั้งค่า (ไอคอนรูปเฟืองที่ด้านขวาบน) แล้วเลือกใช้ข้อมูลเข้าสู่ระบบ OAuth ของคุณเอง จากนั้นป้อน Client ID และ Client secret ในช่องที่เกี่ยวข้อง แล้วคลิกปิด
  3. ในส่วนขั้นตอนที่ 1: เลือกและให้สิทธิ์ API ให้ป้อนขอบเขตของ API https://www.googleapis.com/auth/streetviewpublish ในช่องป้อนขอบเขตของคุณเอง จากนั้นคลิกให้สิทธิ์ API หน้าใหม่จะเปิดขึ้นเพื่อยืนยันว่าคุณต้องการให้สิทธิ์ API
  4. คลิกรหัสการให้สิทธิ์ของ 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 จะอัปโหลดข้อมูลเมตาของรูปภาพและแสดงผลบัตรประจําตัวที่มีรูปถ่าย

  1. ขอ 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'
          
  2. อัปโหลดไบต์รูปภาพไปยัง URL ที่อัปโหลด
            $ curl --request POST \
            --url 'UPLOAD_URL' \
            --upload-file 'PATH_TO_FILE' \
            --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'
          
  3. อัปโหลดข้อมูลเมตาของรูปภาพ
            $ 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 ได้