このドキュメントでは、権限を管理するために 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 オブジェクトの管理に対応するエンドポイントはありません。Looker Studio では、1 つのアセットに対して常に 1 つの権限オブジェクトが存在します。
- アセットからユーザーを削除するには、すべての権限の取り消しをご覧ください。
- アセットにユーザーを追加するには、メンバーの追加に関する記事をご覧ください。
- アセットの権限オブジェクトを確認するには、権限の取得に関する記事をご覧ください。
リスト
Drive API と Looker Studio API に 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 API にも 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
})
})
それぞれのユースケースでの代替手段については、以下をご覧ください。