En este documento, se describe cómo migrar código mediante la API de Drive para la administración de permisos a la API de Looker Studio. Para los extremos comunes de la API de Drive, se muestra el código de la API de Looker Studio correspondiente.
Files
En el caso de los extremos de los archivos de la API de Drive, la API de Looker Studio solo tiene un extremo equivalente para el extremo Files: list
.
Ir a la lista
API | Método | Endpoint |
---|---|---|
Drive | POST |
/drive/v3/files |
Looker Studio | GET |
/v1/assets:search |
Comparación:
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}`
}
})
Consulta los recursos de búsqueda.
Permisos
Crea, borra y obtén
API | Método | Endpoint |
---|---|---|
Drive | POST |
/drive/v3/files/fileId/permissions |
Drive | DELETE |
/drive/v3/files/fileId/permissions/permissionId |
Drive | GET |
/drive/v3/files/fileId/permissions/permissionId |
No hay extremos correspondientes en la API de Looker Studio para administrar varios objetos Permissions
. Solo hay un objeto de permiso para un elemento de Looker Studio y siempre existe.
- Para quitar a alguien de un recurso, consulta Cómo revocar todos los permisos.
- Para agregar a alguien a un recurso, consulta cómo agregar miembros.
- Para ver un objeto de permisos de un recurso, consulta cómo obtener permisos.
Ir a la lista
No hay una coincidencia 1 a 1 entre Drive y Looker Studio, pero los extremos tienen objetivos similares. La diferencia principal es que un archivo de Drive puede tener muchos objetos de permisos, y Looker Studio tiene solo uno.
API | Método | Endpoint |
---|---|---|
Drive | GET |
/drive/v3/files/fileId/permissions |
Looker Studio | GET |
/v1/assets/assetId/permissions |
Comparación:
Drive
En el siguiente código, se enumeran todos los objetos de permisos para la API de Drive. Según tu código, puedes llamar a este método varias veces mediante tokens de paginación (como se muestra) para asegurarte de que puedes ver todos los permisos configurados para un archivo.
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
Como solo hay un objeto de permiso para un recurso de Looker Studio, no tienes que tener en cuenta la paginación.
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}`
}
}
Consulta cómo obtener permisos.
Actualizar
Para actualizar los permisos, las APIs de Looker Studio y Drive tienen funciones muy similares. La diferencia principal es que no puedes establecer un expirationTime
en un permiso de Looker Studio.
API | Método | Endpoint |
---|---|---|
Drive | PATCH |
/drive/v3/files/fileId/permissions/permissionId |
Looker Studio | PATCH |
/v1/assets/assetId/permissions |
Comparación:
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
})
})
Para conocer alternativas específicas según el caso de uso, consulta lo siguiente: