사용자가 화면 보호 기기를 구성하고 Google 포토에서 미디어 소스를 선택하면 애플리케이션에서 이러한 미디어 항목을 나열하고 검색하여 표시할 수 있습니다.
시작하기 전에
- 기기 설정 확인: 사용자의 기기를 만들고 구성했는지 확인합니다.
- Ambient API 흐름 이해: Ambient API 흐름을 검토하여 전반적인 프로세스, 특히
mediaSourcesSet폴링과 관련된 단계를 이해합니다.
mediaSourcesSet에 대한 설문조사
기기의 미디어 항목을 나열하려면 먼저 사용자가 Google 포토 앱에서 애플리케이션과 공유할 사진을 선택해야 합니다. 애플리케이션은 기기를 폴링하여 이 선택이 언제 이루어졌는지 확인해야 합니다.
특정 deviceId의 devices.get 메서드를 주기적으로 호출합니다. AmbientDevice 응답에서 mediaSourcesSet 필드를 모니터링합니다. 처음에는 false입니다. 사용자가 미디어 소스를 선택하면 이 필드는 true로 변경됩니다.
AmbientDevice 응답에는 pollInterval가 포함된 pollingConfig가 포함되며 이를 폴링 빈도의 가이드라인으로 사용해야 합니다.
List Media Items
mediaSourcesSet가 기기의 true이 되면 사용자가 선택한 미디어 항목을 가져오기 시작할 수 있습니다.
mediaItems.list엔드포인트 사용:https://photosambient.googleapis.com/v1/mediaItems에 GET 요청을 실행하고 경로에deviceId를 제공합니다.페이징 처리 (필요한 경우): 응답에 페이지가 생성될 수 있습니다.
pageSize매개변수를 사용하여 반환할 최대 항목 수를 지정하고 이전 응답의pageToken를 사용하여 후속 결과 페이지를 검색합니다.미디어 항목 처리: 응답에는 선택한 미디어 항목을 각각 나타내는
AmbientMediaItem객체의 배열이 포함됩니다. 이러한 객체에는 다음과 같은 필수 세부정보가 포함됩니다.id: 미디어 항목의 고유 식별자입니다.creationTime: 미디어 항목이 생성된 타임스탬프입니다.mediaFile: 실제 콘텐츠에 액세스하기 위한 세부정보가 포함된 객체입니다.
mediaFile 필드에는 baseUrl가 포함됩니다. 이 baseUrl는 다양한 해상도 또는 형식으로 미디어 항목의 콘텐츠에 액세스하는 URL을 생성하는 데 사용됩니다.
기본 URL
Google 포토 API의 기본 URL은 미디어 항목의 원시 바이트에 대한 액세스를 제공하므로 앱에서 미디어 항목을 다운로드하거나 표시할 수 있습니다. 이러한 URL은 앨범을 나열할 때 (Library API) 또는 미디어 항목에 액세스할 때 (Library 및 Picker API 모두) 응답에 포함됩니다. 기본 URL이 제대로 작동하려면 추가 매개변수가 필요합니다.
Picker API의 경우:
모든 PickedMediaItem.mediaFile 객체에는 baseUrl가 포함됩니다.
기본 URL은 60분 동안 활성 상태로 유지되지만 사용자가 Google 계정 설정을 통해 앱의 권한을 취소하면 더 일찍 만료될 수 있습니다.
Library API:
기본 URL은 60분 동안 활성 상태로 유지됩니다.
다양한 기본 URL은 다음과 같습니다.
baseUrl: 사진, 동영상 썸네일에 직접 액세스하거나 동영상 바이트를 다운로드합니다.coverPhotoBaseUrl: 앨범의 표지 사진에 직접 액세스합니다.profilePictureBaseUrl:mediaItem소유자의 프로필 사진에 직접 액세스합니다.
이미지 기본 URL
다음은 이미지 기본 URL과 함께 사용할 수 있는 옵션 목록입니다.
| 매개변수 | |
|---|---|
w, h |
설명 너비 사진이나 동영상 썸네일과 같은 이미지 미디어 항목에 액세스하려면 애플리케이션에 표시할 크기를 지정해야 합니다. 그래야 이미지의 가로세로 비율을 유지하면서 이러한 크기로 이미지를 조정할 수 있습니다. 이렇게 하려면 예와 같이 기본 URL을 필요한 크기와 연결합니다. 예: base-url=wmax-width-hmax-height 다음은 너비가 2048픽셀 이하이고 높이가 1024픽셀 이하인 미디어 항목을 표시하는 예입니다. https://lh3.googleusercontent.com/p/AF....VnnY=w2048-h1024 |
c |
설명 자르기, 지정한 정확한 너비와 높이로 이미지를 자르려면 기본 URL을 필수 크기 (픽셀)는 [1, 16383] 범위에 있어야 합니다. 이미지의 너비 또는 높이가 요청된 크기를 초과하면 이미지가 축소되고 잘립니다 (가로세로 비율 유지). 예: base-url=wmax-width-hmax-height-c 이 예에서는 애플리케이션이 너비가 256픽셀, 높이가 256픽셀인 미디어 항목(예: 썸네일)을 표시합니다. https://lh3.googleusercontent.com/p/AF....VnnY=w256-h256-c |
d |
설명 다운로드 위치 메타데이터를 제외한 모든 Exif 메타데이터를 유지하면서 이미지를 다운로드하려면 기본 URL을 예: base-url=d 이 예에서는 애플리케이션이 위치 메타데이터를 제외한 모든 메타데이터가 포함된 이미지를 다운로드합니다. https://lh3.googleusercontent.com/p/Az....XabC=d |
동영상 기본 URL
다음은 동영상 기본 URL과 함께 사용할 수 있는 옵션 목록입니다.
| 매개변수 | |
|---|---|
dv |
설명 동영상 dv 매개변수는 원본 동영상의 고화질 트랜스코딩 버전을 요청합니다. 이 매개변수는 w 및 h 매개변수와 호환되지 않습니다. 동영상 다운로드의 기본 URL이 바이트를 반환하는 데 최대 몇 초가 걸릴 수 있습니다. 이 매개변수를 사용하기 전에 미디어 항목의 예: base-url=dv 다음 예는 동영상의 바이트를 다운로드하는 방법을 보여줍니다. https://lh3.googleusercontent.com/p/AF....BsdZ=dv |
w, h, c, d |
설명 동영상 썸네일에 액세스하려면 이미지 기본 URL 매개변수 중 하나를 사용하세요. 기본적으로 모든 동영상 썸네일에는 재생 버튼 오버레이가 포함됩니다. 이 오버레이를 삭제하려면 -no 매개변수를 참고하세요. 예: 예시는 이미지 기본 URL 표를 참고하세요. |
no |
설명 썸네일 오버레이 삭제, 재생 버튼 오버레이 없이 동영상 썸네일을 가져오려면 기본 URL을 no 매개변수와 연결합니다. no 매개변수는 이미지 기본 URL 매개변수 중 하나 이상과 함께 사용해야 합니다. 예: base-url=wmax-width-hmax-height-no 다음 예는 너비가 정확히 1280픽셀, 높이가 720픽셀이고 재생 버튼 오버레이가 포함되지 않은 동영상 썸네일을 보여줍니다. https://lh3.googleusercontent.com/p/AF....VnnY=w1280-h720-no |
모션 사진 기본 URL
모션 사진에는 사진과 동영상 요소가 모두 포함됩니다. 모션 포토 baseUrl 요청에는 이미지 기본 URL 또는 동영상 기본 URL의 매개변수를 사용할 수 있습니다.
| 매개변수 | |
|---|---|
dv |
설명 모션 포토 미디어 항목의 동영상 요소를 검색하려면 동영상 기본 URL에서 다운로드할 때와 같이 |
w, h, c, d |
설명 모션 사진 미디어 항목의 사진 요소를 검색하려면 이미지 기본 URL 형식을 사용합니다. |
다음 단계
- 샘플 애플리케이션: 샘플 애플리케이션에는 미디어 항목을 나열하고 검색하는 예가 포함되어 있습니다. 자세한 내용은
checkMediaSourcesSet및fetch_media_item_list함수를 확인하세요. - 참조 문서: 사용 가능한 모든 메서드, 요청 및 응답 매개변수, 오류 코드에 관한 자세한 내용은 포괄적인 미디어 항목 참조 문서를 참고하세요.