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