เอกสารนี้อธิบายวิธีเปลี่ยนโค้ดที่ใช้ Drive API สำหรับการจัดการสิทธิ์ ไปเป็น Looker Studio API สำหรับปลายทาง Drive API ทั่วไป ระบบจะแสดงโค้ด Looker Studio API ที่เกี่ยวข้อง
ไฟล์
สำหรับปลายทางไฟล์ของ Drive API นั้น Looker Studio API จะมีปลายทางที่เทียบเท่า
เฉพาะปลายทาง Files: list
รายการ
| API | วิธีการ | ปลายทาง |
|---|---|---|
| ไดรฟ์ | POST |
/drive/v3/files |
| Looker Studio | 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 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 API สำหรับการจัดการออบเจ็กต์ Permissions หลายรายการ
มีออบเจ็กต์สิทธิ์เพียงรายการเดียวสำหรับชิ้นงาน Looker Studio และออบเจ็กต์นี้จะมีอยู่เสมอ
- หากต้องการนำบุคคลออกจากชิ้นงาน โปรดดูเพิกถอนสิทธิ์ทั้งหมด
- หากต้องการเพิ่มบุคคลลงในชิ้นงาน โปรดดูเพิ่มสมาชิก
- หากต้องการดูออบเจ็กต์สิทธิ์สำหรับเนื้อหา โปรดดู get permissions
รายการ
แม้ว่าไดรฟ์และ Looker Studio จะไม่ได้มีฟีเจอร์ที่ตรงกันแบบ 1 ต่อ 1 แต่ปลายทาง มีเป้าหมายที่คล้ายกัน ความแตกต่างหลักคือไฟล์ในไดรฟ์มีออบเจ็กต์สิทธิ์ได้หลายรายการ และ Looker Studio มีได้เพียงรายการเดียว
| API | วิธีการ | ปลายทาง |
|---|---|---|
| ไดรฟ์ | GET |
/drive/v3/files/fileId/permissions |
| Looker Studio | 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
เนื่องจากมีออบเจ็กต์สิทธิ์เพียงรายการเดียวสำหรับชิ้นงาน 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 และไดรฟ์มีฟังก์ชันการทำงานที่คล้ายกันมาก
ความแตกต่างหลักคือคุณไม่สามารถตั้งค่า expirationTime ในสิทธิ์ของ Looker Studio ได้
| API | วิธีการ | ปลายทาง |
|---|---|---|
| ไดรฟ์ | PATCH |
/drive/v3/files/fileId/permissions/permissionId |
| Looker Studio | 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 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
})
})
ดูทางเลือกอื่นสำหรับกรณีการใช้งานที่เฉพาะเจาะจงได้ที่