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

請參閱搜尋資產

權限

建立、刪除及取得

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 資產只有一個權限物件,而且一律存在。

清單

雲端硬碟與 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 和 Drive API 的功能非常類似,可用來更新權限。主要差別在於您無法在 Looker Studio 權限中設定 expirationTime

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

如需特定用途的替代方案,請參閱: