این سند نحوه انتقال کد با استفاده از Drive API برای مدیریت مجوز به Looker Studio API را شرح میدهد. برای نقاط پایانی رایج Drive API، کد مربوط به Looker Studio API را نشان میدهد.
فایلها
برای نقاط پایانی فایلهای Drive API، رابط برنامهنویسی Looker 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 Looker Studio برای مدیریت چندین شیء Permissions وجود ندارد. فقط یک شیء permissions برای یک دارایی Looker Studio وجود دارد و همیشه وجود دارد.
- برای حذف یک نفر از یک دارایی، به لغو همه مجوزها مراجعه کنید.
- برای افزودن شخصی به یک دارایی، به افزودن اعضا مراجعه کنید.
- برای مشاهدهی شیء مجوزها برای یک دارایی، به دریافت مجوزها مراجعه کنید.
فهرست
تطابق یک به یک بین Drive و Looker Studio وجود ندارد، اما نقاط پایانی اهداف مشابهی را دنبال میکنند. تفاوت اصلی این است که یک فایل Drive میتواند اشیاء مجوز زیادی داشته باشد، و Looker 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);
استودیو لوکر
از آنجایی که فقط یک شیء مجوز برای یک فایل 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}`
}
}
به دریافت مجوزها مراجعه کنید.
بهروزرسانی
برای بهروزرسانی مجوزها، APIهای Looker Studio و Drive عملکرد بسیار مشابهی دارند. تفاوت اصلی این است که نمیتوانید برای مجوز Looker 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
})
})
برای گزینههای خاص هر مورد استفاده، به موارد زیر مراجعه کنید: