Migracja z interfejsu Drive API

Ten dokument wyjaśnia, jak przenieść kod za pomocą interfejsu Drive API w celu uzyskania uprawnień do zarządzania z użyciem interfejsu Looker Studio API. W przypadku typowych punktów końcowych interfejsu Drive API wyświetla się odpowiedni kod interfejsu API Looker Studio.

Pliki

W przypadku punktów końcowych plików interfejsu Drive API interfejs API Looker Studio ma tylko jego odpowiednik punktu końcowego Files: list.

Lista

Interfejs API Metoda Punkt końcowy
Dysk POST /drive/v3/files
Looker Studio GET /v1/assets:search

Porównanie:

Dysk

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

Zobacz wyszukiwanie komponentów.

Uprawnienia

Twórz, usuwaj i pobieraj

Interfejs API Metoda Punkt końcowy
Dysk POST /drive/v3/files/fileId/permissions
Dysk DELETE /drive/v3/files/fileId/permissions/permissionId
Dysk GET /drive/v3/files/fileId/permissions/permissionId

W interfejsie API Looker Studio nie ma odpowiednich punktów końcowych do zarządzania wiele obiektów Permissions. Istnieje tylko jeden obiekt uprawnień zasób Looker Studio, który zawsze istnieje.

Lista

Dysk i Looker Studio nie dokładnie stykają się ze sobą, ale punkty końcowe realizować podobne cele. Plik na Dysku może zawierać wiele elementów, obiektów uprawnień, a Looker Studio ma dokładnie jeden.

Interfejs API Metoda Punkt końcowy
Dysk GET /drive/v3/files/fileId/permissions
Looker Studio GET /v1/assets/assetId/permissions

Porównanie:

Dysk

Ten kod zawiera listę wszystkich obiektów uprawnień dla interfejsu Drive API. W zależności od kodu możesz wywoływać tę metodę wiele razy przy użyciu podziału na strony tokeny (jak pokazano), aby można było wyświetlić wszystkie uprawnienia ustawione dla plik.

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

Dla zasobu Looker Studio jest tylko 1 obiekt uprawnień, muszą uwzględniać podział na strony.

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

Zobacz, jak uzyskać uprawnienia.

Aktualizuj

Jeśli chodzi o aktualizowanie uprawnień, interfejsy API Looker Studio i Dysku mają bardzo podobne funkcji. Główna różnica polega na tym, że nie można ustawić elementu expirationTime na Uprawnienia Looker Studio.

Interfejs API Metoda Punkt końcowy
Dysk PATCH /drive/v3/files/fileId/permissions/permissionId
Looker Studio PATCH /v1/assets/assetId/permissions

Porównanie:

Dysk

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

Alternatywy w konkretnych przypadkach użycia znajdziesz w tych artykułach: