Dokumen ini menguraikan cara memigrasikan kode menggunakan Drive API untuk pengelolaan izin ke Data Studio API. Untuk endpoint Drive API umum, halaman ini menampilkan kode Data Studio API yang sesuai.
File
Untuk endpoint file Drive API, Data Studio API hanya memiliki endpoint yang setara untuk endpoint Files: list.
Daftar
| API | Metode | Endpoint |
|---|---|---|
| Drive | POST |
/drive/v3/files |
| Data Studio | GET |
/v1/assets:search |
Perbandingan:
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",
})
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}`
}
})
Lihat aset penelusuran.
Izin
Membuat, Menghapus, dan Mendapatkan
| API | Metode | Endpoint |
|---|---|---|
| Drive | POST |
/drive/v3/files/fileId/permissions |
| Drive | DELETE |
/drive/v3/files/fileId/permissions/permissionId |
| Drive | GET |
/drive/v3/files/fileId/permissions/permissionId |
Tidak ada endpoint yang sesuai di Data Studio API untuk mengelola beberapa objek Permissions. Hanya ada satu objek izin untuk aset Data Studio, dan objek tersebut selalu ada.
- Untuk menghapus seseorang dari aset, lihat mencabut semua izin
- Untuk menambahkan seseorang ke aset, lihat menambahkan anggota
- Untuk melihat objek izin aset, lihat mendapatkan izin
Daftar
Tidak ada kecocokan 1-ke-1 antara Drive dan Data Studio, tetapi endpoint memiliki tujuan yang serupa. Perbedaan utamanya adalah file Drive dapat memiliki banyak objek izin, dan Data Studio hanya memiliki satu.
| API | Metode | Endpoint |
|---|---|---|
| Drive | GET |
/drive/v3/files/fileId/permissions |
| Data Studio | GET |
/v1/assets/assetId/permissions |
Perbandingan:
Drive
Kode berikut mencantumkan semua objek izin untuk Drive API. Bergantung pada kode Anda, Anda dapat memanggil metode ini beberapa kali menggunakan token penomoran halaman (seperti yang ditunjukkan) untuk memastikan Anda dapat melihat semua izin yang ditetapkan untuk file.
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
Karena hanya ada satu objek izin untuk aset Data Studio, Anda tidak perlu memperhitungkan penomoran halaman.
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}`
}
}
Lihat mendapatkan izin.
Perbarui
Untuk memperbarui izin, Data Studio dan Drive API memiliki fungsi yang sangat mirip. Perbedaan utamanya adalah Anda tidak dapat menetapkan expirationTime pada izin Data Studio.
| API | Metode | Endpoint |
|---|---|---|
| Drive | PATCH |
/drive/v3/files/fileId/permissions/permissionId |
| Data Studio | PATCH |
/v1/assets/assetId/permissions |
Perbandingan:
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)
})
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
})
})
Untuk alternatif khusus kasus penggunaan, lihat: