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