사용자가 파일을 선택하고 드라이브 UI의 '연결 프로그램' 메뉴 항목을 클릭하면 드라이브에서 사용자를 드라이브 UI 통합 구성에 정의된 해당 앱의 열기 URL로 리디렉션합니다.
드라이브 UI 통합을 구성할 때 '가져오기' 체크박스를 선택한 경우 사용자는 앱별 파일과 Google Workspace 파일의 조합을 선택하여 열 수 있습니다. 드라이브 UI 통합을 구성할 때 앱별 파일은 '기본 MIME 유형' 및 '기본 파일 확장자' 필드에 정의되는 반면 Google Workspace 파일은 '보조 MIME 유형' 및 '보조 파일 확장자' 필드에 정의됩니다.
사용자가 열려는 각 파일에 대해 드라이브는 정의된 기본 및 보조 MIME 유형과 MIME 유형을 비교합니다.
'기본 MIME 유형' 필드에 정의된 MIME 유형의 경우 파일 ID가 앱에 전달됩니다. 앱별 파일을 처리하는 방법은 앱별 문서의 열기 URL 처리를 참고하세요.
'보조 MIME 유형' 필드에 정의된 MIME 유형의 경우 드라이브 UI에 Google Workspace 파일을 변환할 파일 형식을 사용자에게 묻는 대화상자가 표시됩니다. 예를 들어 드라이브 UI에서 Google 문서 파일을 선택하고 '보조 MIME 유형' 필드에서 앱이 text/plain 또는 application/pdf를 지원한다고 제안하는 경우 드라이브 UI에서 사용자에게 일반 텍스트 또는 PDF로 변환할지 묻습니다.
Google Workspace 파일을 처리하는 방법은 Google Workspace 문서의 열기 URL 처리를 참고하세요. Google Workspace 문서 및 MIME 유형 변환 형식 목록은 Google Workspace 문서의 MIME 유형 내보내기를 참고하세요.
앱별 문서의 열기 URL 처리
드라이브 UI
통합 구성에 설명된 대로
앱은 앱에서 파일을 여는 데 필요한 정보가 포함된 템플릿 변수를 수신합니다. 앱은 기본 템플릿 변수 집합을 수신합니다.
state 매개변수 내에서 앱별 열기 URL의 기본 state 정보는 다음과 같습니다.
{
"ids": ["ID"],
"resourceKeys":{"RESOURCE_KEYS":"RESOURCE_KEYS"},
"action":"open",
"userId":"USER_ID"
}
이 출력에는 다음 값이 포함됩니다.
- ID: 상위 폴더의 ID입니다.
- RESOURCE_KEYS: 각 리소스 키에 매핑된 파일 ID의 JSON 딕셔너리입니다.
open: 실행 중인 작업입니다. 열기 URL을 사용하는 경우 값은open입니다.- USER_ID: 사용자를 고유하게 식별하는 프로필 ID입니다.
앱은 다음 단계에 따라 이 요청에 응답해야 합니다.
action필드의 값이open이고ids필드가 있는지 확인합니다.userId값을 사용하여 사용자의 새 세션을 만듭니다. 로그인한 사용자에 관한 자세한 내용은 사용자 및 새 이벤트를 참고하세요.files.get메서드를 사용하여 권한을 확인하고 파일 메타데이터를 가져오며 값을 사용하여 파일 콘텐츠를 다운로드합니다.ID- 요청에
resourceKeys가 설정된 경우X-Goog-Drive-Resource-Keys요청 헤더를 설정합니다. 리소스 키에 관한 자세한 내용은 리소스 키를 사용하여 링크 공유 파일에 액세스를 참고하세요.
state 매개변수는 URL로 인코딩되므로 앱은 이스케이프 문자를 처리하고 JSON으로 파싱해야 합니다.
Google Workspace 문서의 열기 URL 처리
드라이브 UI 통합 구성에 설명된 대로 앱은 드라이브 UI
통합에 설명된 대로 앱은 기본
템플릿 변수 집합을 state 매개변수 내에서 수신합니다. Google Workspace 열기 URL의 기본 state 정보는 다음과 같습니다.
{
"exportIds": ["ID"],
"resourceKeys":{"RESOURCE_KEYS":"RESOURCE_KEYS"},
"action":"open",
"userId":"USER_ID"
}
이 출력에는 다음 값이 포함됩니다.
- EXPORT_ID: 내보내는 파일 ID의 쉼표로 구분된 목록입니다. Google Workspace 파일을 열 때만 사용됩니다.
- RESOURCE_KEYS: 각 리소스 키에 매핑된 파일 ID의 JSON 딕셔너리입니다.
open: 실행 중인 작업입니다. 열기 URL을 사용하는 경우 값은open입니다.- USER_ID: 사용자를 식별하는 프로필 ID입니다.
앱은 다음 단계에 따라 이 요청에 응답해야 합니다.
state필드의open값과exportIds필드의 존재를 모두 감지하여 파일 열기 요청인지 확인합니다.files.get메서드를 사용하여 권한을 확인하고 파일 메타데이터를 가져오며 값을 사용하여 MIME 유형을 확인합니다.EXPORT_ID`
files.export` 메서드를 사용하여 파일 콘텐츠를 변환합니다. 다음 코드 샘플은 Google Workspace 문서를 요청된 MIME 유형으로 내보내는 방법을 보여줍니다.요청에
resourceKey가 설정된 경우X-Goog-Drive-Resource-Keys요청 헤더를 설정합니다. 리소스 키에 관한 자세한 내용은 리소스 키를 사용하여 링크 공유 파일에 액세스를 참고하세요.자바
Python
Node.js
PHP
변환된 파일을 읽기 전용으로 표시하거나 사용자에게 파일을 새 파일 형식으로 저장할 수 있는 대화상자를 표시합니다.
state 매개변수는 URL로 인코딩되므로 앱은 이스케이프 문자를 처리하고 JSON으로 파싱해야 합니다.
사용자 및 새 이벤트
드라이브 앱은 모든 '연결 프로그램' 이벤트를 잠재적인 로그인으로 처리해야 합니다. 일부 사용자에게는 계정이 여러 개 있을 수 있으므로 state 매개변수의 사용자 ID가 현재 세션과 일치하지 않을 수 있습니다. state 매개변수의 사용자 ID가 현재 세션과 일치하지 않으면 앱의 현재 세션을 종료하고 요청된 사용자로 로그인합니다.
관련 주제
Google Drive UI에서 애플리케이션을 여는 것 외에도 애플리케이션은 앱 내에서 콘텐츠를 선택할 수 있는 파일 선택 도구를 표시할 수 있습니다. 자세한 내용은 Google Picker를 참고하세요.