進行第一次 API 呼叫

如要完成對 Street View Publish API 進行基本呼叫的必要步驟,請按照本教學課程的步驟操作。

發出 HTTP 呼叫

您可以使用多種工具呼叫 Street View Publish API,例如 curl、wget 和 Postman。 在大部分的情況下,您可能會想要使用您選擇的程式設計語言來建構用戶端應用程式。 但本教學課程將逐步引導您完成 個別指令

另外,我們也提供了一些用戶端程式庫 決定要直接發出 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. 前往「Credentials」(憑證) 頁面 頁面。
  2. 如果您已有 API 金鑰,可以使用其中的值。否則 從「New credentials」選單中選取「API key」,建立新金鑰。

取得存取權杖

  1. 前往 Google Developers OAuth 2.0 Playground
  2. 按一下「設定」選單 (右上角的齒輪圖示),勾選「使用自己的 OAuth 憑證」,然後輸入您的 Client IDClient secret,然後按一下「關閉」
  3. 步驟 1:選取授權 API,輸入 API 範圍 https://www.googleapis.com/auth/streetviewpublish 在「輸入自己的範圍」欄位中,按一下「授權 API」。A 罩杯 新頁面會開啟,確認您要授權 API。
  4. 按一下「Exchange License code for token」。這將填入 「Access token」欄位,其中包含要用於 下一步存取權杖將於 60 分鐘後失效。您可以選取 並在權杖過期前自動更新權杖,藉此建立新的權杖。

傳送 HTTP 要求

取得 API 金鑰和存取權杖後,您可以執行下列指令 殼層上對服務執行 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'
  

上傳相片

需要分別呼叫三次才能新增相片。第一次呼叫會傳回上傳網址 在第二次呼叫中用於上傳相片位元組。上傳相片位元組後 第三個呼叫會上傳相片的中繼資料,並傳回附相片的身分證件。

  1. 要求上傳網址
            $ 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. 將相片位元組上傳至上傳網址
            $ 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 中加入多個以半形逗號分隔的值。