애플리케이션에 OAuth를 구성하려면 OAuth 워크플로를 설정하고 Data Portability API OAuth 범위를 사용 설정합니다.
OAuth 워크플로 설정
애플리케이션의 OAuth 흐름을 설정하려면 Google ID 문서의 기본 단계를 따르세요.
대부분의 개발자는 OAuth 동의를 얻기 위해 서버 측 웹 앱 흐름을 사용하지만 JavaScript 웹 앱 흐름 또는 모바일 및 데스크톱 앱 흐름을 사용할 수도 있습니다.
내보내기에 액세스 토큰의 전체 기간보다 오래 걸릴 수 있으며, 사용자가 30일 또는 180일의 액세스 권한을 부여할 수도 있습니다. 갱신 토큰을 가져와 정기적으로 새 액세스 토큰으로 교환해야 할 수 있습니다. 자세한 내용은 웹 앱의 액세스 토큰 갱신 및 모바일 및 데스크톱 앱의 액세스 토큰 갱신을 참고하세요.
중요: OAuth 클라이언트의 게시 상태가 테스트가 아닌 프로덕션인 경우에만 OAuth 토큰 갱신을 사용할 수 있습니다. 또한 테스트 게시 상태로 OAuth 클라이언트에 부여된 토큰은 30일 또는 180일 기간을 선택하더라도 항상 7일 후에 만료됩니다. 자세한 내용은 OAuth 동의 화면 설정을 참고하세요.
Data Portability API OAuth 범위
OAuth용 Data Portability API 애플리케이션을 구성할 때 애플리케이션과 관련된 Data Portability API OAuth 범위를 사용 설정합니다. 일부 범위는 sensitive
및 restricted
이며 추가 요구사항이 적용됩니다.
OAuth 흐름에 Data Portability API 범위를 추가하면 사용자가 일부 범위에만 동의하는 경우가 있습니다. 앱은 다음과 같은 방식으로 이러한 케이스를 처리할 수 있어야 합니다.
- 부분 데이터 내보내기 허용
- 사용자에게 필요한 범위를 모두 선택하지 않았다고 알리고 적절하게 실패함
- 사용자에게 나머지 동의 요청
또한 사용자는 개발자에게 데이터 액세스 권한을 한 번 부여할지 아니면 30일 또는 180일 동안 부여할지 선택할 수 있습니다.
- 사용자가 일회성 액세스 권한을 부여하면 앱은 해당 동의에 따라 하나의 데이터 내보내기를 실행할 수 있습니다. 데이터를 다시 다운로드하려면 사용자의 새 동의가 필요합니다.
- 사용자가 시간 기반 액세스 권한을 부여하면 앱은 지정된 기간 동안 또는 사용자가 동의를 취소할 때까지 데이터 내보내기를 실행할 수 있습니다.
- 요청에 시간 필터를 적용하여 특정 기간(예: 지난 6개월)의 데이터를 내보낼 수도 있습니다.
또한 OAuth 흐름 중에 앱은 동의하는 데 사용된 Google 계정을 알 수 없습니다. 애플리케이션에서 수신하는 OAuth 토큰은 불투명합니다.
사용자가 데이터를 공유하는 방법에 관한 정보를 확인하려면 서드 파티와 데이터 사본 공유하기를 참고하세요.
범위 제한
이 섹션에서는 오류가 발생하는 범위의 제한사항을 설명합니다.
혼합된 범위
Data Portability API 범위 (예: https://www.googleapis.com/auth/dataportability.*) 요청은 다른 범위 (예: https://www.googleapis.com/auth/userinfo.email)와 혼합할 수 없습니다. 다음은 제한된 부분이 굵게 표시된 잘못된 요청의 예입니다.
https://accounts.google.com/o/oauth2/v2/auth?
client_id=client_id&
redirect_uri=redirect_uri&
response_type=token&
scope=https://www.googleapis.com/auth/dataportability.myactivity.search+https://www.googleapis.com/auth/userinfo.email&
include_granted_scopes=false
이전에 부여된 범위
DPAPI 범위를 요청할 때는 include_granted_scopes=true
를 설정해서는 안 됩니다.
다음은 제한된 부분이 굵게 표시된 잘못된 요청의 예입니다.
https://accounts.google.com/o/oauth2/v2/auth?
client_id=client_id&
redirect_uri=redirect_uri&
response_type=token&
scope=https://www.googleapis.com/auth/dataportability.myactivity.search&
include_granted_scopes=true
범위가 너무 많음
요청에 추가된 범위가 너무 많으면 400 bad request
오류가 발생할 수 있습니다. URL 길이가 브라우저에서 지원하는 길이를 초과하면 이 오류가 발생합니다. 이 문제를 해결하려면 범위에 대한 요청을 여러 개의 소규모 일괄 처리로 분할하고 증분 승인을 사용하여 각 일괄 처리에 대한 동의를 요청하세요.
범위 카테고리
Data Portability API에서 지원하는 모든 OAuth 범위 및 카테고리의 목록은 사용 가능한 OAuth 범위를 참고하세요. 특정 서비스에서 지원하는 모든 리소스 그룹 및 OAuth 범위의 목록은 해당 서비스의 스키마 참조 페이지를 참고하세요.