이 문서에서는 권한 관리를 위해 Drive API를 사용하는 코드를 Looker Studio API로 이전하는 방법을 설명합니다. 일반적인 Drive API 엔드포인트의 경우 해당 Looker Studio API 코드가 표시됩니다.
파일
Drive API 파일 엔드포인트의 경우 Looker Studio API에는 Files: list 엔드포인트에 해당하는 엔드포인트만 있습니다.
목록
| API | 메서드 | 엔드포인트 |
|---|---|---|
| 드라이브 | 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 | 메서드 | 엔드포인트 |
|---|---|---|
| 드라이브 | POST |
/drive/v3/files/fileId/permissions |
| 드라이브 | DELETE |
/drive/v3/files/fileId/permissions/permissionId |
| 드라이브 | GET |
/drive/v3/files/fileId/permissions/permissionId |
여러 Permissions 객체를 관리하기 위한 Looker Studio API의 해당 엔드포인트는 없습니다. Looker Studio 애셋에는 권한 객체가 하나만 있으며 항상 존재합니다.
목록
Drive와 Looker Studio는 일대일로 일치하지 않지만 엔드포인트는 유사한 목표를 제공합니다. 주요 차이점은 Drive 파일에는 여러 권한 객체가 있을 수 있지만 Looker Studio에는 정확히 하나만 있다는 것입니다.
| API | 메서드 | 엔드포인트 |
|---|---|---|
| 드라이브 | 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 | 메서드 | 엔드포인트 |
|---|---|---|
| 드라이브 | 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
})
})
사용 사례별 대안은 다음을 참고하세요.