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