เอกสารนี้อธิบายวิธีย้ายข้อมูลโค้ดโดยใช้ Drive API สำหรับการจัดการสิทธิ์ไปยัง Looker Studio API สำหรับปลายทางทั่วไปของ Drive API จะแสดงโค้ด Looker Studio API ที่เกี่ยวข้อง
Files
สําหรับปลายทางของไฟล์ 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 มีออบเจ็กต์สิทธิ์เพียงรายการเดียวและจะมีอยู่เสมอ
- หากต้องการนำบุคคลออกจากเนื้อหา ให้ดูเพิกถอนสิทธิ์ทั้งหมด
- หากต้องการเพิ่มบุคคลในเนื้อหา โปรดดูเพิ่มสมาชิก
- หากต้องการดูออบเจ็กต์สิทธิ์ของเนื้อหา ให้ดูรับสิทธิ์
รายการ
ไม่มีการจับคู่แบบ 1 ต่อ 1 ระหว่างไดรฟ์และ Looker Studio แต่ปลายทางมีเป้าหมายคล้ายกัน ความแตกต่างที่สำคัญคือไฟล์ในไดรฟ์มีออบเจ็กต์สิทธิ์ได้หลายรายการ และ 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}`
}
}
อัปเดต
สำหรับการอัปเดตสิทธิ์ Looker Studio และ API ของไดรฟ์มีฟังก์ชันการทำงานที่คล้ายกันมาก ความแตกต่างที่สำคัญคือคุณตั้งค่า 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
})
})
โปรดดูตัวเลือกอื่นๆ สำหรับกรณีการใช้งานที่