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

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

الملفات

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

قائمة

واجهة برمجة التطبيقات الطريقة نقطة نهاية
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}`
  }
})

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

الأذونات

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

واجهة برمجة التطبيقات الطريقة نقطة نهاية
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 على عنصر واحد فقط.

واجهة برمجة التطبيقات الطريقة نقطة نهاية
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}`
  }
}

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

تعديل

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

واجهة برمجة التطبيقات الطريقة نقطة نهاية
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
  })
})

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