本文档概述了如何使用 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 |
比较:
云端硬盘
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 |
Looker Studio API 中没有用于管理多个 Permissions
对象的相应端点。一个 Looker Studio 资源只有一个权限对象,并且该对象始终存在。
列表
云端硬盘与 Looker Studio 之间没有一对一的匹配,但端点可以实现类似的目标。主要区别在于云端硬盘文件可以有多个权限对象,而 Looker Studio 只有一个权限对象。
API | 方法 | 端点 |
---|---|---|
云端硬盘 | GET |
/drive/v3/files/fileId/permissions |
Looker Studio | 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);
Looker Studio
由于一项 Looker 数据洞察资源只有一个权限对象,因此您无需考虑进行分页。
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 API 和 Drive API 的功能非常相似。主要区别在于,您无法针对 Looker Studio 权限设置 expirationTime
。
API | 方法 | 端点 |
---|---|---|
云端硬盘 | PATCH |
/drive/v3/files/fileId/permissions/permissionId |
Looker Studio | 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)
})
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
})
})
有关特定用例的替代方案,请参阅: