مهاجرت از Drive API

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

فایل‌ها

برای نقاط پایانی فایل‌های Drive API، رابط برنامه‌نویسی کاربردی Data 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) دیتا استودیو برای مدیریت چندین شیء Permissions وجود ندارد. فقط یک شیء مجوز برای یک دارایی دیتا استودیو وجود دارد و آن شیء همیشه وجود دارد.

فهرست

تطابق یک به یک بین Drive و Data Studio وجود ندارد، اما نقاط پایانی اهداف مشابهی را دنبال می‌کنند. تفاوت اصلی این است که یک فایل Drive می‌تواند اشیاء مجوز زیادی داشته باشد، و Data 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);

استودیو داده

از آنجایی که فقط یک شیء مجوز برای یک دارایی 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 عملکرد بسیار مشابهی دارند. تفاوت اصلی این است که نمی‌توانید برای مجوز Data 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
  })
})

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