نقل البيانات من Drive API

يوضّح هذا المستند كيفية نقل الرمز البرمجي الذي يستخدم Drive API لإدارة الأذونات إلى واجهة برمجة تطبيقات مركز البيانات. بالنسبة إلى نقاط النهاية الشائعة في Drive API، يعرض رمز Data Studio API المقابل.

الملفات

بالنسبة إلى نقاط نهاية الملفات في Drive API، لا تتضمّن واجهة برمجة تطبيقات مركز البيانات نقطة نهاية مكافئة إلا لنقطة نهاية Files: list.

قائمة

واجهة برمجة التطبيقات الطريقة نقطة نهاية
Drive POST /drive/v3/files
مركز البيانات 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",
})

مركز البيانات من Google

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

اطّلِع على مواد العرض على شبكة البحث.

الأذونات

الإنشاء والحذف والحصول

واجهة برمجة التطبيقات الطريقة نقطة نهاية
Drive POST /drive/v3/files/fileId/permissions
Drive DELETE /drive/v3/files/fileId/permissions/permissionId
Drive GET /drive/v3/files/fileId/permissions/permissionId

لا تتوفّر نقاط نهاية مقابلة في واجهة برمجة تطبيقات مركز البيانات لإدارة عناصر Permissions متعددة. لا يتوفّر سوى عنصر أذونات واحد لمادة عرض في "مركز البيانات"، وهو متوفّر دائمًا.

قائمة

لا يوجد تطابق تام بين Drive و"مركز البيانات"، ولكن نقاط النهاية تخدم أهدافًا متشابهة. والفرق الرئيسي هو أنّ ملف Drive يمكن أن يتضمّن العديد من عناصر الأذونات، بينما يتضمّن "مركز البيانات" عنصرًا واحدًا فقط.

واجهة برمجة التطبيقات الطريقة نقطة نهاية
Drive GET /drive/v3/files/fileId/permissions
مركز البيانات 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);

مركز البيانات من Google

بما أنّه لا يتوفّر سوى عنصر إذن واحد لأحد مواد عرض "مركز البيانات"، لن تحتاج إلى مراعاة تقسيم المحتوى إلى صفحات.

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

اطّلِع على كيفية الحصول على الأذونات.

تعديل

تتوفّر وظائف متشابهة جدًا في واجهتَي برمجة التطبيقات مركز البيانات وDrive لتعديل الأذونات. الفرق الرئيسي هو أنّه لا يمكنك ضبط expirationTime على إذن في "مركز البيانات".

واجهة برمجة التطبيقات الطريقة نقطة نهاية
Drive PATCH /drive/v3/files/fileId/permissions/permissionId
مركز البيانات 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)
})

مركز البيانات من Google

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

للاطّلاع على بدائل خاصة بحالات الاستخدام، يُرجى الرجوع إلى: