Street View Publish API를 기본 호출하는 데 필요한 단계를 완료하려면 이 튜토리얼의 단계를 따르세요.
HTTP 호출
Street View Publish API는 curl, wget, Postman. 대부분의 경우 원하는 프로그래밍 언어를 사용하여 클라이언트 애플리케이션을 빌드하는 것이 이지만 이 튜토리얼에서는 실행할 수 있습니다
클라이언트 라이브러리를 사용하지 않는 경우 클라이언트 라이브러리도 제공됩니다. 직접 HTTP 호출을 하고 싶을 수 있습니다
기본 요건
-
Google API 콘솔에 액세스하고 API 키를 요청하고 애플리케이션을 등록하려면 Google 계정이 필요합니다.
-
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 키 가져오기
인증 및 할당량을 위해서는 Developers Console에서 생성된 사용자 인증 정보와 함께 Google Street View Publish API를 사용해야 합니다.
- 사용자 인증 정보로 이동합니다. 페이지로 이동하세요.
- 이미 API 키가 있으면 그 값을 사용할 수 있습니다. 그렇지 않으면 새 사용자 인증 정보 메뉴에서 API 키를 선택하여 새로 만듭니다.
액세스 토큰 받기
- Google Developers OAuth 2.0 Playground로 이동합니다.
- 설정 메뉴 (오른쪽 상단의 톱니바퀴 아이콘)를 클릭하고 자체 OAuth 사용자 인증 정보 사용을 선택한 다음
Client ID
및Client secret
를 입력한 후 닫기를 클릭합니다. <ph type="x-smartling-placeholder"> - 1단계: 선택 및 API 승인, API 범위 입력
<ph type="x-smartling-placeholder">
https://www.googleapis.com/auth/streetviewpublish
</ph> 내 범위 입력 필드에 입력한 다음 API 승인을 클릭합니다. 가 새 페이지가 열려 API를 승인할 것인지 확인합니다. - Exchange Authorization Code for 토큰을 클릭합니다. 이렇게 하면 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'
사진 업로드
사진을 만들려면 세 번의 개별 호출이 필요합니다. 첫 번째 호출은 업로드 URL을 반환합니다. 두 번째 호출에서 사진 바이트를 업로드하는 데 사용됩니다. 사진 바이트가 업로드된 후에는 세 번째 호출은 사진의 메타데이터를 업로드하고 사진 ID를 반환합니다.
- 업로드 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
에 쉼표로 구분된 값을 여러 개 입력할 수 있습니다.