Von der Drive API migrieren

In diesem Dokument wird beschrieben, wie Sie Code mithilfe der Drive API für die Berechtigungsverwaltung zur Looker Studio API migrieren. Für gängige Drive API-Endpunkte wird der entsprechende Looker Studio API-Code angezeigt.

Files

Für die Dateiendpunkte der Drive API gibt es in der Looker Studio API nur einen entsprechenden Endpunkt für den Endpunkt Files: list.

Liste

API Methode Endpunkt
Drive POST /drive/v3/files
Looker Studio GET /v1/assets:search

Vergleich:

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

Siehe Assets für die Suche.

Berechtigungen

Erstellen, löschen und abrufen

API Methode Endpunkt
Drive POST /drive/v3/files/fileId/permissions
Drive DELETE /drive/v3/files/fileId/permissions/permissionId
Drive GET /drive/v3/files/fileId/permissions/permissionId

In der Looker Studio API gibt es keine entsprechenden Endpunkte für die Verwaltung mehrerer Permissions-Objekte. Es gibt nur ein Berechtigungsobjekt für ein Looker Studio-Asset und es ist immer vorhanden.

Liste

Es gibt keine 1:1-Übereinstimmung zwischen Drive und Looker Studio, aber die Endpunkte dienen ähnlichen Zielen. Der Hauptunterschied besteht darin, dass eine Drive-Datei viele Berechtigungsobjekte haben kann und Looker Studio genau eines hat.

API Methode Endpunkt
Drive GET /drive/v3/files/fileId/permissions
Looker Studio GET /v1/assets/assetId/permissions

Vergleich:

Drive

Mit dem folgenden Code werden alle Berechtigungsobjekte für die Drive API aufgelistet. Abhängig von Ihrem Code können Sie diese Methode mehrmals mit Paginierungstokens aufrufen (wie gezeigt), damit Sie alle für eine Datei festgelegten Berechtigungen sehen können.

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

Da für ein Looker Studio-Asset nur ein Berechtigungsobjekt vorhanden ist, müssen Sie die Paginierung nicht berücksichtigen.

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

Weitere Informationen finden Sie unter Berechtigungen abrufen.

Aktualisieren

Die Funktionen der Looker Studio API und der Drive API zum Aktualisieren von Berechtigungen sind sehr ähnlich. Der Hauptunterschied besteht darin, dass Sie keine expirationTime für eine Looker Studio-Berechtigung festlegen können.

API Methode Endpunkt
Drive PATCH /drive/v3/files/fileId/permissions/permissionId
Looker Studio PATCH /v1/assets/assetId/permissions

Vergleich:

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

Alternativen für die einzelnen Anwendungsfälle finden Sie hier: