В этом документе описывается, как перенести код с помощью Drive API для управления разрешениями в Looker Studio API. Для распространенных конечных точек Drive API отображается соответствующий код API Looker Studio.
Файлы
Что касается конечных точек файлов API Диска, API Looker Studio имеет только конечную точку, эквивалентную конечной точке 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 |
В API Looker Studio нет соответствующих конечных точек для управления несколькими объектами Permissions
. Для ресурса Looker Studio существует только один объект разрешений, и он существует всегда.
- Чтобы удалить кого-либо из ресурса, см. отзыв всех разрешений.
- Чтобы добавить кого-либо в актив, см. раздел «Добавление участников».
- Чтобы просмотреть объект разрешений для актива, см. получение разрешений.
Список
Между Drive и Looker Studio нет однозначного соответствия, но конечные точки служат схожим целям. Основное отличие состоит в том, что файл на Диске может иметь множество объектов разрешений, а Looker Studio — только один.
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);
Лукер Студия
Поскольку для ресурса 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 и Drive имеют очень схожие функции. Основное отличие заключается в том, что вы не можете установить expirationTime
для разрешения Looker Studio.
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
})
})
Альтернативы для конкретного случая использования см. в разделе: