ทำการเรียก API ครั้งแรก

โปรดทำตามขั้นตอนที่จำเป็นในการเรียกใช้ Street View Publish API โดยทำตามขั้นตอนในบทแนะนำนี้

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

สามารถเรียก API ของ Street View โดยใช้เครื่องมือหลายอย่าง เช่น 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 ได้