如要完成對 Street View Publish API 進行基本呼叫的必要步驟,請按照本教學課程的步驟操作。
發出 HTTP 呼叫
您可以使用多種工具呼叫 Street View Publish API,例如 curl、wget 和 Postman。 在大部分的情況下,您可能會想要使用您選擇的程式設計語言來建構用戶端應用程式。 但本教學課程將逐步引導您完成 個別指令
另外,我們也提供了一些用戶端程式庫 決定要直接發出 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 產生的憑證。
取得存取權杖
- 前往 Google Developers OAuth 2.0 Playground。
- 按一下「設定」選單 (右上角的齒輪圖示),勾選「使用自己的 OAuth 憑證」,然後輸入您的
Client ID
,Client secret
,然後按一下「關閉」。 - 在步驟 1:選取授權 API,輸入 API 範圍
https://www.googleapis.com/auth/streetviewpublish
在「輸入自己的範圍」欄位中,按一下「授權 API」。A 罩杯 新頁面會開啟,確認您要授權 API。 - 按一下「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'
上傳相片
需要分別呼叫三次才能新增相片。第一次呼叫會傳回上傳網址 在第二次呼叫中用於上傳相片位元組。上傳相片位元組後 第三個呼叫會上傳相片的中繼資料,並傳回附相片的身分證件。
- 要求上傳網址
$ 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'
- 將相片位元組上傳至上傳網址
$ 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
中加入多個以半形逗號分隔的值。