В этом документе описывается, как перенести код, использующий API Google Drive для управления разрешениями, в API Looker Studio. Для распространенных конечных точек API Google Drive приведен соответствующий код API Looker Studio.
Файлы
Что касается конечных точек API Google Drive для доступа к файлам, то API Looker Studio имеет эквивалентную конечную точку только для 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 |
В API Looker Studio нет соответствующих конечных точек для управления несколькими объектами Permissions . Для каждого ресурса Looker Studio существует только один объект разрешений, и он всегда существует.
- Чтобы удалить пользователя из списка пользователей ресурса, см. раздел «Отзыв всех разрешений».
- Чтобы добавить пользователя к активу, см. раздел «Добавление участников».
- Чтобы просмотреть объект разрешений для ресурса, см. раздел «Получение разрешений».
Список
Между Google Drive и Looker Studio нет полного совпадения, но конечные точки служат схожим целям. Главное отличие заключается в том, что файл в Google Drive может иметь множество объектов разрешений, а в Looker Studio — ровно один.
| API | Метод | Конечная точка |
|---|---|---|
| Водить машину | GET | /drive/v3/files/fileId/permissions |
| Looker Studio | GET | /v1/assets/assetId/permissions |
Сравнение:
Водить машину
Приведенный ниже код выводит список всех объектов разрешений для API Google Диска. В зависимости от вашего кода, вы можете вызывать этот метод несколько раз, используя токены пагинации (как показано), чтобы убедиться, что вы видите все разрешения, установленные для файла.
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}`
}
}
См. раздел «Получение разрешений» .
Обновлять
Для обновления разрешений API Looker Studio и Google Drive обладают очень схожей функциональностью. Основное различие заключается в том, что вы не можете установить expirationTime для разрешения в Looker Studio.
| 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
})
})
Варианты решения, специфичные для конкретных сценариев использования, см.: