Migrazione dall'API Drive

Questo documento illustra come eseguire la migrazione del codice utilizzando l'API Drive per le autorizzazioni. la gestione dei contenuti all'API Looker Studio. Per gli endpoint comuni dell'API Drive, mostra il codice dell'API Looker Studio corrispondente.

File

Per gli endpoint dei file dell'API Drive, l'API Looker Studio ha solo un equivalente endpoint per l'endpoint Files: list.

Elenco

API Metodo Endpoint
Drive POST /drive/v3/files
Looker Studio GET /v1/assets:search

Confronto:

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

Scopri gli asset di ricerca.

Autorizzazioni

Crea, elimina e ricevi

API Metodo Endpoint
Drive POST /drive/v3/files/fileId/permissions
Drive DELETE /drive/v3/files/fileId/permissions/permissionId
Drive GET /drive/v3/files/fileId/permissions/permissionId

Non esistono endpoint corrispondenti nell'API Looker Studio per la gestione più oggetti Permissions. Esiste un solo oggetto autorizzazioni per dell'asset di Looker Studio ed esiste sempre.

Elenco

Non esiste una corrispondenza 1:1 tra Drive e Looker Studio, ma gli endpoint raggiungere obiettivi simili. La differenza principale è che un file di Drive può avere molti di autorizzazioni e Looker Studio ne ha esattamente uno.

API Metodo Endpoint
Drive GET /drive/v3/files/fileId/permissions
Looker Studio GET /v1/assets/assetId/permissions

Confronto:

Drive

Il codice seguente elenca tutti gli oggetti delle autorizzazioni per l'API Drive. A seconda del codice, puoi chiamare questo metodo più volte utilizzando l'impaginazione (come illustrato) per assicurarti di poter visualizzare tutte le autorizzazioni impostate un file.

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

Poiché esiste un solo oggetto autorizzazione per un asset di Looker Studio, devono tenere conto dell'impaginazione.

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

Vedi Ottenere le autorizzazioni.

Aggiorna

Per l'aggiornamento delle autorizzazioni, le API Looker Studio e Drive presentano funzionalità. La differenza principale è che non puoi impostare expirationTime su un Autorizzazione Looker Studio.

API Metodo Endpoint
Drive PATCH /drive/v3/files/fileId/permissions/permissionId
Looker Studio PATCH /v1/assets/assetId/permissions

Confronto:

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

Per alternative specifiche per i singoli casi d'uso, consulta: