Drive API에서 이전

이 문서에서는 권한 관리를 위해 Drive API를 사용하여 코드를 Looker Studio API로 이전하는 방법을 설명합니다. 일반적인 Drive API 엔드포인트의 경우 해당 Looker Studio API 코드가 표시됩니다.

Files

Drive API 파일 엔드포인트의 경우 Looker Studio API에는 Files: list 엔드포인트와 동등한 엔드포인트만 있습니다.

목록

API 메서드 엔드포인트
Drive POST /drive/v3/files
Looker Studio GET /v1/assets:search

비교:

Drive

const oAuthToken = '123' // This should be replaced with a valid OAuth token.
fetch(`https://www.googleapis.com/drive/v3/files`, {
  headers: {
    Authorization: `Bearer ${oAuthToken}`
  },
  method: "POST",
})

Looker Studio

const oAuthToken = '123' // This should be replaced with a valid OAuth token.
fetch(`https://datastudio.googleapis.com/v1/assets:search?assetTypes={ASSET_TYPE}`, {
  headers: {
    Authorization: `Bearer ${oAuthToken}`
  }
})

검색 확장 소재를 참고하세요.

권한

만들기, 삭제, 가져오기

API 메서드 엔드포인트
Drive POST /drive/v3/files/fileId/permissions
Drive DELETE /drive/v3/files/fileId/permissions/permissionId
Drive GET /drive/v3/files/fileId/permissions/permissionId

Looker Studio API에는 여러 Permissions 객체를 관리하기 위한 해당 엔드포인트가 없습니다. Looker Studio 애셋에는 권한 객체가 하나뿐이며 항상 존재합니다.

목록

Drive와 Looker Studio가 일대일로 일치하지는 않지만 엔드포인트는 비슷한 목표를 제공합니다. 주요 차이점은 Drive 파일에는 여러 개의 권한 객체가 있을 수 있고 Looker Studio에는 정확히 하나의 권한 객체가 있다는 점입니다.

API 메서드 엔드포인트
Drive GET /drive/v3/files/fileId/permissions
Looker Studio GET /v1/assets/assetId/permissions

비교:

Drive

다음 코드는 Drive API에 대한 모든 권한 객체를 나열합니다. 코드에 따라 페이지로 나누기 토큰을 사용하여 이 메서드를 여러 번 호출하여 (아래 그림 참조) 파일에 설정된 모든 권한을 볼 수 있습니다.

const fileId = '123'; // This should be replaced with a valid Drive ID.
const oAuthToken = '123'; // This should be replaced with a valid OAuth token.
let nextPageToken = undefined;
let permissions = [];
do {
  const permissionsData = await fetch(`https://www.googleapis.com/drive/v3/files/${fileId}/permissions`, {
    headers: {
      Authorization: `Bearer ${oAuthToken}`
    }
  });
  nextPageToken = permissionsData.nextPageToken;
  permissions = permissions.concat(permissionsData.permissions)
} while (nextPageToken !== undefined);

Looker Studio

Looker Studio 애셋의 권한 객체는 하나만 있으므로 페이지로 나누기를 고려하지 않아도 됩니다.

const oAuthToken = '123' // This should be replaced with a valid OAuth token.
const assetId = '123' // This should be replaced with a valid asset ID.
fetch(`https://datastudio.googleapis.com/v1/assets/{ASSET_ID}/permissions`, {
  headers: {
    Authorization: `Bearer ${oAuthToken}`
  }
}

권한 받기를 참고하세요.

업데이트

권한 업데이트의 경우 Looker Studio와 Drive API의 기능이 매우 유사합니다. 주요 차이점은 Looker Studio 권한에는 expirationTime를 설정할 수 없다는 것입니다.

API 메서드 엔드포인트
Drive PATCH /drive/v3/files/fileId/permissions/permissionId
Looker Studio PATCH /v1/assets/assetId/permissions

비교:

Drive

const fileId = '123'; // This should be replaced with a valid Drive ID.
const oAuthToken = '123'; // This should be replaced with a valid OAuth token.
const newPermissionsObject = {
  expirationTime: '...',
  role: 'owner', // Or any other option
}
fetch(`https://www.googleapis.com/drive/v3/files/${fileId}/permissions/permissionId`, {
  headers: {
    Authorization: `Bearer ${oAuthToken}`
  },
  method: "PATCH",
  body: JSON.stringify(newPermissionsObject)
})

Looker Studio

const oAuthToken = '123' // This should be replaced with a valid OAuth token.
const assetId = '123' // This should be replaced with a valid asset ID.
const newPermissionsObject = {
  permissions: {
    //...
  }
}

fetch(`https://datastudio.googleapis.com/v1/assets/${assetId}/permissions`, {
  headers: {
    Authorization: `Bearer ${oAuthToken}`
  },
  method: "PATCH",
  body: JSON.stringify({
    name: assetId,
    permissions: newPermissionsObject
  })
})

사용 사례별 대안은 다음을 참고하세요.