세션은 Picker API의 핵심으로, 안전하고 제어 가능한 환경을 제공합니다 Google 포토 라이브러리에서 사진과 앨범을 선택할 수 있는 새로운 방법입니다. 이 가이드에서는 세션을 만들고, 관리하고, 효과적으로 폴링하여 앱에서 원활한 사진 선택을 사용 설정하는 방법을 설명합니다.
시작하기 전에
- 앱 구성: API를 사용 설정하고 인증을 설정합니다. 자세한 내용은 자세한 내용은 앱을 구성하세요. 학습합니다.
- 절차 이해하기: Picker API 시작하기를 검토합니다. 를 참조하세요.
- 필수 승인 범위 검토: 세션 작업을 하려면
photospicker.mediaitems.readonly
범위 범위에 대한 자세한 내용은 승인 범위를 참조하세요.
세션 수명 주기
Picker API는 관련 정보를 생성하고 검색하며 세션을 삭제합니다. 사용자를 인증한 후 세션을 사용하여 살펴보겠습니다.
- 사용자가 미디어 항목을 선택할 수 있도록 세션을 만듭니다.
- 세션을 폴링하여 사용자가 미디어 항목 선택을 완료했는지 확인합니다.
- 미디어 항목을 나열하고 가져옵니다.
- 세션을 삭제하여 정리합니다.
세션 만들기
사용자가 Google 사진에서 직접 사진을 안전하게 선택할 수 있도록 세션을 만드세요. Google 포토 앱에 다시 게시하고 애플리케이션에 다시 공유합니다.
sessions.create
는 새 세션을 생성하여 다음과 같은 고유한 pickerUri
를 반환합니다.
사용자에게 제시할 수 있습니다 사용자 중 한 명이라도 세션은 활성 상태로 유지됩니다.
미디어 항목을 성공적으로 선택했거나 세션이 타임아웃되었습니다.
세션 제한
세션 제한에 유의합니다. Picker API는 책임감 있는 사용을 보장하고 악용을 방지하기 위해 만들 수 있는 세션입니다. 미달 이러한 한도에 도달할 가능성은 거의 없습니다. 하지만 세션을 사전에 추적하고 삭제하여 있습니다
세션 폴링 및 모니터링
세션이 생성되면 sessions.get
엔드포인트를 주기적으로 폴링하여 다음을 얻습니다.
세션의 상태를 반환합니다. 응답의 mediaItemsSet
속성은 다음을 반환합니다.
사용자가 선택을 완료하면 true
입니다.
효율적인 폴링을 사용합니다. sessions.get
응답에는 다음이 포함됩니다.
pollingConfig
객체. 다음 필드를 사용하여 불필요한 정보를 제공하지 마세요.
원활한 사용자 환경을 조성해야 합니다.
pollInterval
: 최적의 폴링 간격timeoutIn
: 제한 시간 기간
자세한 내용은 폴링 흐름 예시를 참조하세요.
세션 삭제 및 정리
sessions.delete
는 세션을 삭제합니다. 일반적으로 사용자가 미디어 선택을 완료한 후 또는 세션이 시간 초과된 경우 정리에 사용됩니다.
사용자가 미디어 항목을 선택하고 앱에서 미디어 항목 바이트를 검색한 후에는 세션을 삭제하는 것이 좋습니다.
폴링 흐름의 예
다음은 세션을 만들고 폴링하는 예시입니다. 최초 인증 후 새 세션을 만듭니다.
- 세션 만들기:
sessions.create
를 호출하여 새 세션을 시작하고pickerUri
를 가져옵니다. - 사용자에게
pickerUri
표시: URL을 표시하거나 QR을 생성합니다. 자동으로 스캔합니다. - 세션 설문조사:
pollingConfig
의 권장 설문조사 간격을 사용합니다.mediaItemsSet
가 true인지 확인합니다.true
인 경우 선택한 미디어 항목을 나열합니다.false
인 경우timeoutIn
에 도달할 때까지 폴링을 계속합니다.
- 시간 초과 및 취소를 적절하게 처리합니다.
GET https://photoslibrary.googleapis.com/v1/sessions/{sessionId}
응답 예시는 다음과 같습니다.
{
"id": string,
"pickerUri": string,
"pollingConfig": {
object (PollingConfig)
},
"mediaItemsSet": boolean
}
사용자에게 pickerUri
를 표시한 다음 세션 폴링을 시작합니다.
응답에서 다음을 확인합니다.
mediaItemsSet
: 사용자가 미디어 항목 선택을 완료한 경우 truepollingConfig.pollInterval
: 권장 대기 시간 다음 설문조사 전pollingConfig.timeoutIn
: 다음 날짜 이전에 대기할 총 시간 시간 초과
mediaItemsSet
가 false이고 timeoutIn
에 도달하지 않은 경우
pollInterval
을 탭한 다음 다시 폴링합니다.
mediaItemsSet
이 true이면 선택한 미디어 항목을 나열합니다.
timeoutIn
에 도달하면 시간 초과를 적절하게 처리합니다.