Bu belgede, izin yönetimi için Drive API'yi kullanan kodun Data Studio API'ye nasıl taşınacağı açıklanmaktadır. Sık kullanılan Drive API uç noktaları için ilgili Data Studio API kodunu gösterir.
Dosyalar
Data Studio API'de, Drive API dosyaları uç noktaları için yalnızca Files: list uç noktasına eşdeğer bir uç nokta bulunur.
Liste
| API | Yöntem | Uç nokta |
|---|---|---|
| Drive | POST |
/drive/v3/files |
| Data Studio | GET |
/v1/assets:search |
Karşılaştırma:
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}`
}
})
Öğelerde arama başlıklı makaleyi inceleyin.
İzinler
Oluşturma, Silme ve Alma
| API | Yöntem | Uç nokta |
|---|---|---|
| Drive | POST |
/drive/v3/files/fileId/permissions |
| Drive | DELETE |
/drive/v3/files/fileId/permissions/permissionId |
| Drive | GET |
/drive/v3/files/fileId/permissions/permissionId |
Data Studio API'de birden fazla Permissions nesnesini yönetmek için karşılık gelen uç noktalar yoktur. Data Studio öğeleri için yalnızca bir izin nesnesi vardır ve bu nesne her zaman mevcuttur.
- Bir kullanıcıyı öğeden kaldırmak için tüm izinleri iptal etme başlıklı makaleyi inceleyin.
- Bir öğeye kullanıcı eklemek için üye ekleme başlıklı makaleyi inceleyin.
- Bir öğenin izin nesnesini görüntülemek için get permissions (izinleri al) başlıklı makaleyi inceleyin.
Liste
Drive ile Data Studio arasında bire bir eşleşme olmasa da uç noktalar benzer amaçlara hizmet eder. Aralarındaki temel fark, bir Drive dosyasının birçok izin nesnesi içerebilmesi, Data Studio'nun ise tam olarak bir izin nesnesi içermesidir.
| API | Yöntem | Uç nokta |
|---|---|---|
| Drive | GET |
/drive/v3/files/fileId/permissions |
| Data Studio | GET |
/v1/assets/assetId/permissions |
Karşılaştırma:
Drive
Aşağıdaki kod, Drive API'si için tüm izin nesnelerini listeler. Kodunuza bağlı olarak, bir dosya için ayarlanan tüm izinleri görebilmek amacıyla bu yöntemi sayfalama jetonlarını kullanarak (gösterildiği gibi) birden çok kez çağırabilirsiniz.
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 öğeleri için yalnızca bir izin nesnesi olduğundan sayfalama işlemini hesaba katmanız gerekmez.
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}`
}
}
İzin alma başlıklı makaleyi inceleyin.
Güncelle
İzinleri güncelleme konusunda Data Studio ve Drive API'leri çok benzer işlevlere sahiptir. Aradaki temel fark, Data Studio izninde expirationTime ayarlayamamanızdır.
| API | Yöntem | Uç nokta |
|---|---|---|
| Drive | PATCH |
/drive/v3/files/fileId/permissions/permissionId |
| Data Studio | PATCH |
/v1/assets/assetId/permissions |
Karşılaştırma:
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
})
})
Kullanım alanına özel alternatifler için: