Drive API からの移行

このドキュメントでは、権限用の 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 オブジェクトを使用できます。1 つのプロジェクトに設定できる権限オブジェクトは 1 つのみです。 Looker Studio アセットで、常に存在します。

リスト

ドライブと Looker Studio は 1 対 1 で一致しませんが、エンドポイントは 同様の目標を設定することです主な違いは、1 つのドライブのファイルには複数の 権限オブジェクトが 1 つで、Looker Studio には 1 つだけあります。

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 アセットには権限オブジェクトが 1 つしかないため、権限オブジェクトは ページ分けを考慮する必要があります

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 はよく似ています。 説明します。主な違いは、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
  })
})

それぞれのユースケースでの代替手段については、以下をご覧ください。