במסמך הזה מוסבר איך להעביר קוד באמצעות Drive API לקבלת הרשאה ל-Looker Studio API. בנקודות קצה נפוצות של Drive API, את קוד ה-API התואם של Looker Studio.
קבצים
לנקודות הקצה של קובצי 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, והוא תמיד קיים.
- כדי להסיר מישהו מנכס, יש לעיין במאמר ביטול כל ההרשאות.
- כדי להוסיף מישהו לנכס, אפשר לעיין בקטע הוספת חברים.
- כדי לצפות באובייקט הרשאה של נכס, אפשר לעיין במאמר קבלת הרשאות.
רשימה
אין התאמה של 1 על 1 בין 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
})
})
לחלופות ספציפיות לתרחישים לדוגמה, ראו: