يوضح هذا المستند كيفية نقل الرمز باستخدام Drive API للحصول على الإذن واجهة برمجة تطبيقات 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 |
المقارنة:
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}`
}
})
اطّلِع على مواد عرض البحث.
الأذونات
الإنشاء والحذف والحصول
واجهة برمجة التطبيقات | الطريقة | نقطة نهاية |
---|---|---|
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 |
المقارنة:
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
الأخرى. ويكمن الاختلاف الرئيسي في عدم إمكانية ضبط expirationTime
على
إذن Looker Studio
واجهة برمجة التطبيقات | الطريقة | نقطة نهاية |
---|---|---|
Drive | 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
})
})
للحصول على بدائل خاصة بحالات الاستخدام، يُرجى الاطّلاع على: