การย้ายข้อมูลจาก Drive API

เอกสารนี้อธิบายวิธีย้ายข้อมูลโค้ดโดยใช้ 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}`
  }
})

ดูชิ้นงานสำหรับ Search

สิทธิ์

สร้าง ลบ และรับ

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
  })
})

โปรดดูตัวเลือกอื่นๆ สำหรับกรณีการใช้งานที่