Von der Drive API migrieren

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

Dateien

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

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

Weitere Informationen

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

Es gibt keine entsprechenden Endpunkte in der Looker Studio API zum Verwalten 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-Entsprechung zwischen Drive und Looker Studio, aber die Endpunkte dienen ähnlichen Zwecken. Der Hauptunterschied besteht darin, dass eine Drive-Datei viele Berechtigungsobjekte haben kann, während es in Looker Studio genau eines gibt.

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

Vergleich:

Drive

Im folgenden Code werden alle Berechtigungsobjekte für die Drive API aufgeführt. Je nach Code rufen Sie diese Methode möglicherweise mehrmals mit Paginierungstokens auf (wie gezeigt), um alle Berechtigungen für eine Datei zu sehen.

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 es nur ein Berechtigungsobjekt für ein Looker Studio-Asset gibt, 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 erhalten.

Aktualisieren

Die Looker Studio- und Drive-APIs haben sehr ähnliche Funktionen zum Aktualisieren von Berechtigungen. 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
  })
})

Anwendungsfallspezifische Alternativen finden Sie unter: