Effectuer une migration depuis l'API Drive

Ce document explique comment migrer du code utilisant l'API Drive pour la gestion des autorisations vers l'API Looker Studio. Pour les points de terminaison courants de l'API Drive, il affiche le code API Looker Studio correspondant.

Fichiers

Pour les points de terminaison de fichiers de l'API Drive, l'API Looker Studio ne possède qu'un point de terminaison équivalent pour le point de terminaison Files: list.

Liste

API Méthode Point de terminaison
Drive POST /drive/v3/files
Looker Studio GET /v1/assets:search

Comparaison :

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

Consultez Rechercher des composants.

Autorisations

Créer, supprimer et obtenir

API Méthode Point de terminaison
Drive POST /drive/v3/files/fileId/permissions
Drive DELETE /drive/v3/files/fileId/permissions/permissionId
Drive GET /drive/v3/files/fileId/permissions/permissionId

Il n'existe aucun point de terminaison correspondant dans l'API Looker Studio pour gérer plusieurs objets Permissions. Il n'existe qu'un seul objet d'autorisation pour un composant Looker Studio, et il existe toujours.

Liste

Il n'existe pas de correspondance directe entre Drive et Looker Studio, mais les points de terminaison servent des objectifs similaires. La principale différence est qu'un fichier Drive peut comporter de nombreux objets d'autorisation, tandis que Looker Studio n'en comporte qu'un seul.

API Méthode Point de terminaison
Drive GET /drive/v3/files/fileId/permissions
Looker Studio GET /v1/assets/assetId/permissions

Comparaison :

Drive

Le code suivant liste tous les objets d'autorisation pour l'API Drive. En fonction de votre code, vous pouvez appeler cette méthode plusieurs fois à l'aide de jetons de pagination (comme indiqué) pour vous assurer de voir toutes les autorisations définies pour un fichier.

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

Étant donné qu'il n'existe qu'un seul objet d'autorisation pour un composant Looker Studio, vous n'avez pas à tenir compte de la pagination.

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

Consultez Obtenir des autorisations.

Mettre à jour

Les API Looker Studio et Drive offrent des fonctionnalités très similaires pour la mise à jour des autorisations. La principale différence est que vous ne pouvez pas définir de expirationTime sur une autorisation Looker Studio.

API Méthode Point de terminaison
Drive PATCH /drive/v3/files/fileId/permissions/permissionId
Looker Studio PATCH /v1/assets/assetId/permissions

Comparaison :

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

Pour des alternatives spécifiques à des cas d'utilisation, consultez les pages suivantes :