Bermigrasi dari Drive API

Dokumen ini menguraikan cara memigrasikan kode menggunakan Drive API untuk pengelolaan izin ke Looker Studio API. Untuk endpoint Drive API umum, halaman ini menampilkan kode Looker Studio API yang sesuai.

File

Untuk endpoint file Drive API, Looker Studio API hanya memiliki endpoint yang setara untuk endpoint Files: list.

Daftar

API Metode Endpoint
Drive POST /drive/v3/files
Looker Studio GET /v1/assets:search

Perbandingan:

Drive

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

Lihat aset penelusuran.

Izin

Membuat, Menghapus, dan Mendapatkan

API Metode Endpoint
Drive POST /drive/v3/files/fileId/permissions
Drive DELETE /drive/v3/files/fileId/permissions/permissionId
Drive GET /drive/v3/files/fileId/permissions/permissionId

Tidak ada endpoint yang sesuai di Looker Studio API untuk mengelola beberapa objek Permissions. Hanya ada satu objek izin untuk aset Looker Studio, dan objek tersebut selalu ada.

Daftar

Tidak ada kecocokan 1 banding 1 antara Drive dan Looker Studio, tetapi endpoint memiliki tujuan yang serupa. Perbedaan utamanya adalah file Drive dapat memiliki banyak objek izin, dan Looker Studio hanya memiliki satu.

API Metode Endpoint
Drive GET /drive/v3/files/fileId/permissions
Looker Studio GET /v1/assets/assetId/permissions

Perbandingan:

Drive

Kode berikut mencantumkan semua objek izin untuk Drive API. Bergantung pada kode Anda, Anda dapat memanggil metode ini beberapa kali menggunakan token penomoran halaman (seperti yang ditunjukkan) untuk memastikan Anda dapat melihat semua izin yang ditetapkan untuk file.

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

Karena hanya ada satu objek izin untuk aset Looker Studio, Anda tidak perlu memperhitungkan penomoran halaman.

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

Lihat mendapatkan izin.

Perbarui

Untuk memperbarui izin, API Looker Studio dan Drive memiliki fungsi yang sangat mirip. Perbedaan utamanya adalah Anda tidak dapat menetapkan expirationTime pada izin Looker Studio.

API Metode Endpoint
Drive PATCH /drive/v3/files/fileId/permissions/permissionId
Looker Studio PATCH /v1/assets/assetId/permissions

Perbandingan:

Drive

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

Untuk alternatif khusus kasus penggunaan, lihat: