במסמך הזה מוסבר איך להעביר קוד שמשתמש ב-Drive API לניהול הרשאות אל Data Studio API. לנקודות קצה נפוצות של Drive API, מוצג קוד ה-API התואם של Data Studio.
קבצים
במקרה של נקודות הקצה של קבצים ב-Drive API, ל-Data Studio API יש רק נקודת קצה מקבילה לנקודת הקצה Files: list.
רשימה
| API | שיטה | נקודת קצה |
|---|---|---|
| Drive | POST |
/drive/v3/files |
| Data Studio | GET |
/v1/assets:search |
השוואה:
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}`
}
})
מידע נוסף על נכסי קמפיין לחיפוש
הרשאות
יצירה, מחיקה וקבלת מידע
| API | שיטה | נקודת קצה |
|---|---|---|
| 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 לניהול של כמה אובייקטים מסוג Permissions. יש רק אובייקט הרשאות אחד לנכס ב-Data Studio, והוא תמיד קיים.
- כדי להסיר מישהו מנכס, אפשר לעיין במאמר בנושא ביטול כל ההרשאות.
- כדי להוסיף מישהו לנכס, אפשר לעיין במאמר בנושא הוספת חברים.
- כדי לראות אובייקט הרשאות של נכס, אפשר לעיין במאמר בנושא קבלת הרשאות
רשימה
אין התאמה מלאה בין Drive לבין Data Studio, אבל נקודות הקצה משרתות מטרות דומות. ההבדל העיקרי הוא שלקובץ ב-Drive יכולים להיות הרבה אובייקטים של הרשאות, ול-Data Studio יש בדיוק אחד.
| API | שיטה | נקודת קצה |
|---|---|---|
| Drive | GET |
/drive/v3/files/fileId/permissions |
| Data Studio | GET |
/v1/assets/assetId/permissions |
השוואה:
Drive
בדוגמה הבאה מוצגת רשימה של כל אובייקטי ההרשאות של 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);
Data Studio
מכיוון שיש רק אובייקט הרשאה אחד לנכס ב-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.
fetch(`https://datastudio.googleapis.com/v1/assets/{ASSET_ID}/permissions`, {
headers: {
Authorization: `Bearer ${oAuthToken}`
}
}
עדכון
ממשקי ה-API של Data Studio ו-Drive דומים מאוד מבחינת הפונקציונליות שלהם לעדכון הרשאות. ההבדל העיקרי הוא שאי אפשר להגדיר expirationTime להרשאה ב-Data Studio.
| API | שיטה | נקודת קצה |
|---|---|---|
| Drive | PATCH |
/drive/v3/files/fileId/permissions/permissionId |
| Data Studio | PATCH |
/v1/assets/assetId/permissions |
השוואה:
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
})
})
למידע על חלופות ספציפיות לתרחישי שימוש, אפשר לעיין במאמרים הבאים: