مهاجرت از Drive API

این سند نحوه انتقال کد با استفاده از Drive API برای مدیریت مجوز به Looker Studio API را شرح می‌دهد. برای نقاط پایانی رایج Drive API، کد مربوط به Looker Studio API را نشان می‌دهد.

فایل‌ها

برای نقاط پایانی فایل‌های Drive API، رابط برنامه‌نویسی Looker Studio فقط یک نقطه پایانی معادل برای نقطه پایانی Files: list دارد.

فهرست

رابط برنامه‌نویسی کاربردی روش نقطه پایانی
رانندگی POST /drive/v3/files
استودیو لوکر GET /v1/assets:search

مقایسه:

رانندگی

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",
})

استودیو لوکر

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}`
  }
})

به دارایی‌های جستجو مراجعه کنید.

مجوزها

ایجاد، حذف و دریافت

رابط برنامه‌نویسی کاربردی روش نقطه پایانی
رانندگی POST /drive/v3/files/fileId/permissions
رانندگی DELETE /drive/v3/files/fileId/permissions/permissionId
رانندگی GET /drive/v3/files/fileId/permissions/permissionId

هیچ نقطه پایانی متناظری در API Looker Studio برای مدیریت چندین شیء Permissions وجود ندارد. فقط یک شیء permissions برای یک دارایی Looker Studio وجود دارد و همیشه وجود دارد.

فهرست

تطابق یک به یک بین Drive و Looker Studio وجود ندارد، اما نقاط پایانی اهداف مشابهی را دنبال می‌کنند. تفاوت اصلی این است که یک فایل Drive می‌تواند اشیاء مجوز زیادی داشته باشد، و Looker Studio دقیقاً یکی دارد.

رابط برنامه‌نویسی کاربردی روش نقطه پایانی
رانندگی GET /drive/v3/files/fileId/permissions
استودیو لوکر GET /v1/assets/assetId/permissions

مقایسه:

رانندگی

کد زیر تمام اشیاء مجوزها را برای 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 وجود دارد، لازم نیست صفحه‌بندی را در نظر بگیرید.

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 عملکرد بسیار مشابهی دارند. تفاوت اصلی این است که نمی‌توانید برای مجوز Looker Studio expirationTime تعیین کنید.

رابط برنامه‌نویسی کاربردی روش نقطه پایانی
رانندگی PATCH /drive/v3/files/fileId/permissions/permissionId
استودیو لوکر PATCH /v1/assets/assetId/permissions

مقایسه:

رانندگی

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)
})

استودیو لوکر

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
  })
})

برای گزینه‌های خاص هر مورد استفاده، به موارد زیر مراجعه کنید: