本文說明如何使用數據分析 API,遷移透過 Drive API 進行權限管理的程式碼。針對常見的 Drive API 端點,系統會顯示對應的 Data Studio API 程式碼。
檔案
對於 Drive API 檔案端點,數據分析 API 只有 Files: list 端點的對等端點。
清單
| API | 方法 | 端點 |
|---|---|---|
| 雲端硬碟 | POST |
/drive/v3/files |
| 數據分析 | GET |
/v1/assets:search |
比較:
雲端硬碟
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",
})
數據分析
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 |
Studio API 沒有對應的端點,可管理多個 Permissions 物件。每個 Google 數據分析資產都只有一個權限物件,而且一律存在。
清單
雲端硬碟和數據分析的端點並非完全相同,但目標相似。主要差異在於雲端硬碟檔案可以有多個權限物件,而數據分析只有一個。
| API | 方法 | 端點 |
|---|---|---|
| 雲端硬碟 | GET |
/drive/v3/files/fileId/permissions |
| 數據分析 | GET |
/v1/assets/assetId/permissions |
比較:
雲端硬碟
下列程式碼會列出 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);
數據分析
由於數據分析資產只有一個權限物件,因此您不必考慮分頁。
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}`
}
}
請參閱取得權限。
更新
如要更新權限,數據分析和雲端硬碟 API 的功能非常相似。主要差異在於您無法在數據分析權限中設定 expirationTime。
| API | 方法 | 端點 |
|---|---|---|
| 雲端硬碟 | PATCH |
/drive/v3/files/fileId/permissions/permissionId |
| 數據分析 | PATCH |
/v1/assets/assetId/permissions |
比較:
雲端硬碟
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)
})
數據分析
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
})
})
如需特定用途的替代方案,請參閱: