세션 만들기 및 관리

세션은 Picker API의 핵심으로, 안전하고 제어 가능한 환경을 제공합니다 Google 포토 라이브러리에서 사진과 앨범을 선택할 수 있는 새로운 방법입니다. 이 가이드에서는 세션을 만들고, 관리하고, 효과적으로 폴링하여 앱에서 원활한 사진 선택을 사용 설정하는 방법을 설명합니다.

시작하기 전에

  • 앱 구성: API를 사용 설정하고 인증을 설정합니다. 자세한 내용은 자세한 내용은 앱을 구성하세요. 학습합니다.
  • 절차 이해하기: Picker API 시작하기를 검토합니다. 를 참조하세요.
  • 필수 승인 범위 검토: 세션 작업을 하려면 photospicker.mediaitems.readonly 범위 범위에 대한 자세한 내용은 승인 범위를 참조하세요.

세션 수명 주기

Picker API는 관련 정보를 생성하고 검색하며 세션을 삭제합니다. 사용자를 인증한 후 세션을 사용하여 살펴보겠습니다.

  1. 사용자가 미디어 항목을 선택할 수 있도록 세션을 만듭니다.
  2. 세션을 폴링하여 사용자가 미디어 항목 선택을 완료했는지 확인합니다.
  3. 미디어 항목을 나열하고 가져옵니다.
  4. 세션을 삭제하여 정리합니다.

세션 만들기

사용자가 Google 사진에서 직접 사진을 안전하게 선택할 수 있도록 세션을 만드세요. Google 포토 앱에 다시 게시하고 애플리케이션에 다시 공유합니다.

sessions.create는 새 세션을 생성하여 다음과 같은 고유한 pickerUri를 반환합니다. 사용자에게 제시할 수 있습니다 사용자 중 한 명이라도 세션은 활성 상태로 유지됩니다. 미디어 항목을 성공적으로 선택했거나 세션이 타임아웃되었습니다.

세션 제한

세션 제한에 유의합니다. Picker API는 책임감 있는 사용을 보장하고 악용을 방지하기 위해 만들 수 있는 세션입니다. 미달 이러한 한도에 도달할 가능성은 거의 없습니다. 하지만 세션을 사전에 추적하고 삭제하여 있습니다

세션 폴링 및 모니터링

세션이 생성되면 sessions.get 엔드포인트를 주기적으로 폴링하여 다음을 얻습니다. 세션의 상태를 반환합니다. 응답의 mediaItemsSet 속성은 다음을 반환합니다. 사용자가 선택을 완료하면 true입니다.

효율적인 폴링을 사용합니다. sessions.get 응답에는 다음이 포함됩니다. pollingConfig 객체. 다음 필드를 사용하여 불필요한 정보를 제공하지 마세요. 원활한 사용자 환경을 조성해야 합니다.

  • pollInterval: 최적의 폴링 간격
  • timeoutIn: 제한 시간 기간

자세한 내용은 폴링 흐름 예시를 참조하세요.

세션 삭제 및 정리

sessions.delete는 세션을 삭제합니다. 일반적으로 사용자가 미디어 선택을 완료한 후 또는 세션이 시간 초과된 경우 정리에 사용됩니다.

사용자가 미디어 항목을 선택하고 앱에서 미디어 항목 바이트를 검색한 후에는 세션을 삭제하는 것이 좋습니다.

폴링 흐름의 예

다음은 세션을 만들고 폴링하는 예시입니다. 최초 인증 후 새 세션을 만듭니다.

  1. 세션 만들기: sessions.create를 호출하여 새 세션을 시작하고 pickerUri를 가져옵니다.
  2. 사용자에게 pickerUri 표시: URL을 표시하거나 QR을 생성합니다. 자동으로 스캔합니다.
  3. 세션 설문조사:
    1. pollingConfig의 권장 설문조사 간격을 사용합니다.
    2. mediaItemsSet가 true인지 확인합니다.
      1. true인 경우 선택한 미디어 항목을 나열합니다.
      2. false인 경우 timeoutIn에 도달할 때까지 폴링을 계속합니다.
    3. 시간 초과 및 취소를 적절하게 처리합니다.
GET https://photoslibrary.googleapis.com/v1/sessions/{sessionId}

응답 예시는 다음과 같습니다.

{
  "id": string,
  "pickerUri": string,
  "pollingConfig": {
    object (PollingConfig)
  },
  "mediaItemsSet": boolean
}

사용자에게 pickerUri를 표시한 다음 세션 폴링을 시작합니다.

응답에서 다음을 확인합니다.

  • mediaItemsSet: 사용자가 미디어 항목 선택을 완료한 경우 true
  • pollingConfig.pollInterval: 권장 대기 시간 다음 설문조사 전
  • pollingConfig.timeoutIn: 다음 날짜 이전에 대기할 총 시간 시간 초과

mediaItemsSet가 false이고 timeoutIn에 도달하지 않은 경우 pollInterval을 탭한 다음 다시 폴링합니다.

mediaItemsSet이 true이면 선택한 미디어 항목을 나열합니다.

timeoutIn에 도달하면 시간 초과를 적절하게 처리합니다.