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

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

Files

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

قائمة

API الطريقة نقطة النهاية
خدمات تتعلّق بالسيارات POST /drive/v3/files
Looker Studio GET /v1/assets:search

المقارنة:

Google 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 الطريقة نقطة النهاية
خدمات تتعلّق بالسيارات POST /drive/v3/files/fileId/permissions
خدمات تتعلّق بالسيارات DELETE /drive/v3/files/fileId/permissions/permissionId
خدمات تتعلّق بالسيارات GET /drive/v3/files/fileId/permissions/permissionId

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

قائمة

ما مِن تطابق تام بين Drive وLooker Studio، لكنّ نقاط النهاية تخدم أهدافًا مماثلة، والفرق الرئيسي هو أنّ ملف Drive يمكن أن يحتوي على العديد من كائنات الأذونات، فيما تتضمّن أداة Looker Studio عنصرًا واحدًا فقط.

API الطريقة نقطة النهاية
خدمات تتعلّق بالسيارات GET /drive/v3/files/fileId/permissions
Looker Studio GET /v1/assets/assetId/permissions

المقارنة:

Google Drive

يسرد هذا الرمز التالي جميع عناصر الأذونات لواجهة برمجة تطبيقات 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.
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 API وظائف متشابهة جدًا. والفرق الرئيسي هو أنّه لا يمكنك ضبط expirationTime على إذن Looker Studio.

API الطريقة نقطة النهاية
خدمات تتعلّق بالسيارات PATCH /drive/v3/files/fileId/permissions/permissionId
Looker Studio PATCH /v1/assets/assetId/permissions

المقارنة:

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

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