מעבר מה-API של Drive

במסמך הזה מוסבר איך להעביר קוד שמשתמש ב-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
  })
})

חלופות ספציפיות למקרי שימוש מפורטות במאמרים הבאים: