این سند نحوه انتقال کد با استفاده از Drive API برای مدیریت مجوزها به Looker Studio API را شرح می دهد. برای نقاط پایانی مشترک Drive API، کد مربوطه Looker Studio API را نشان می دهد.
فایل ها
برای نقاط پایانی فایلهای Drive API، Looker Studio API فقط یک نقطه پایانی معادل برای Files: list
endpoint دارد.
فهرست کنید
API | روش | نقطه پایانی |
---|---|---|
رانندگی کنید | POST | /drive/v3/files |
استودیو Looker | 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",
})
استودیو Looker
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 API برای مدیریت چندین اشیاء Permissions
وجود ندارد. فقط یک شی مجوز برای دارایی Looker Studio وجود دارد و همیشه وجود دارد.
- برای حذف شخصی از دارایی، به لغو همه مجوزها مراجعه کنید
- برای افزودن شخصی به دارایی، به افزودن اعضا مراجعه کنید
- برای مشاهده یک شی مجوز برای یک دارایی، به دریافت مجوزها مراجعه کنید
فهرست کنید
مسابقه 1 به 1 بین Drive و Looker Studio وجود ندارد، اما نقاط پایانی اهداف مشابهی را دنبال میکنند. تفاوت اصلی این است که یک فایل Drive میتواند دارای مجوزهای زیادی باشد و استودیو Looker دقیقاً یکی دارد.
API | روش | نقطه پایانی |
---|---|---|
رانندگی کنید | GET | /drive/v3/files/fileId/permissions |
استودیو Looker | 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
از آنجایی که تنها یک شی مجوز برای دارایی 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 | 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)
})
استودیو Looker
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
})
})
برای جایگزین های خاص مورد استفاده، نگاه کنید به: