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