Tài liệu này trình bày cách di chuyển mã bằng Drive API để quản lý quyền sang Looker Studio API. Đối với các điểm cuối phổ biến của Drive API, công cụ này sẽ cho thấy mã Looker Studio API tương ứng.
Tệp
Đối với các điểm cuối tệp Drive API, Looker Studio API chỉ có một điểm cuối tương đương cho điểm cuối Files: list.
Danh sách
| API | Phương thức | Điểm cuối |
|---|---|---|
| Drive | POST |
/drive/v3/files |
| Looker Studio | GET |
/v1/assets:search |
So sánh:
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}`
}
})
Xem thành phần tìm kiếm.
Quyền
Tạo, xoá và nhận
| API | Phương thức | Điểm cuối |
|---|---|---|
| Drive | POST |
/drive/v3/files/fileId/permissions |
| Drive | DELETE |
/drive/v3/files/fileId/permissions/permissionId |
| Drive | GET |
/drive/v3/files/fileId/permissions/permissionId |
Không có điểm cuối tương ứng nào trong Looker Studio API để quản lý nhiều đối tượng Permissions. Chỉ có một đối tượng quyền cho tài sản Looker Studio và đối tượng này luôn tồn tại.
- Để xoá một người khỏi một tài sản, hãy xem phần thu hồi tất cả các quyền
- Để thêm người dùng vào một tài sản, hãy xem phần thêm thành viên
- Để xem đối tượng quyền của một tài sản, hãy xem phần lấy quyền
Danh sách
Không có sự tương đồng 1-1 giữa Drive và Looker Studio, nhưng các điểm cuối này có mục tiêu tương tự nhau. Điểm khác biệt chính là một tệp trên Drive có thể có nhiều đối tượng quyền, còn Looker Studio chỉ có một đối tượng quyền.
| API | Phương thức | Điểm cuối |
|---|---|---|
| Drive | GET |
/drive/v3/files/fileId/permissions |
| Looker Studio | GET |
/v1/assets/assetId/permissions |
So sánh:
Drive
Đoạn mã sau đây liệt kê tất cả các đối tượng quyền cho Drive API. Tuỳ thuộc vào mã của bạn, bạn có thể gọi phương thức này nhiều lần bằng cách sử dụng mã thông báo phân trang (như minh hoạ) để đảm bảo bạn có thể thấy tất cả các quyền được đặt cho một tệp.
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
Vì chỉ có một đối tượng quyền cho một tài sản Looker Studio, nên bạn không cần phải tính đến việc phân trang.
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}`
}
}
Xem phần xin cấp quyền.
Cập nhật
Để cập nhật quyền, API Looker Studio và Drive có chức năng rất giống nhau. Điểm khác biệt chính là bạn không thể đặt expirationTime cho quyền truy cập vào Looker Studio.
| API | Phương thức | Điểm cuối |
|---|---|---|
| Drive | PATCH |
/drive/v3/files/fileId/permissions/permissionId |
| Looker Studio | PATCH |
/v1/assets/assetId/permissions |
So sánh:
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
})
})
Để biết các lựa chọn thay thế cụ thể theo trường hợp sử dụng, hãy xem: