Drive API'den taşıma

Bu belgede, izin yönetimi için Drive API'yi kullanan kodun Looker Studio API'ye nasıl taşınacağı açıklanmaktadır. Genel Drive API uç noktaları için ilgili Looker Studio API kodunu gösterir.

Dosyalar

Looker Studio API, Drive API dosyaları uç noktaları için yalnızca Files: list uç noktasına eşdeğer bir uç noktaya sahiptir.

Liste

API Yöntem Uç nokta
Drive POST /drive/v3/files
Looker Studio GET /v1/assets:search

Karşılaştırma:

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

Öğelerde arama başlıklı makaleyi inceleyin.

İzinler

Oluşturma, Silme ve Alma

API Yöntem Uç nokta
Drive POST /drive/v3/files/fileId/permissions
Drive DELETE /drive/v3/files/fileId/permissions/permissionId
Drive GET /drive/v3/files/fileId/permissions/permissionId

Looker Studio API'de birden fazla Permissions nesnesini yönetmek için karşılık gelen uç noktalar yoktur. Looker Studio öğeleri için yalnızca bir izin nesnesi vardır ve bu nesne her zaman mevcuttur.

  • Bir kullanıcıyı öğeden kaldırmak için tüm izinleri iptal etme başlıklı makaleyi inceleyin.
  • Bir öğeye kullanıcı eklemek için üye ekleme başlıklı makaleyi inceleyin.
  • Bir öğenin izin nesnesini görüntülemek için get permissions başlıklı makaleyi inceleyin.

Liste

Drive ile Looker Studio arasında bire bir eşleşme olmasa da uç noktalar benzer amaçlara hizmet eder. Aralarındaki temel fark, bir Drive dosyasının birçok izin nesnesi içerebilmesi, Looker Studio'nun ise tam olarak bir tane içermesidir.

API Yöntem Uç nokta
Drive GET /drive/v3/files/fileId/permissions
Looker Studio GET /v1/assets/assetId/permissions

Karşılaştırma:

Drive

Aşağıdaki kod, Drive API'si için tüm izin nesnelerini listeler. Kodunuza bağlı olarak, bir dosya için ayarlanan tüm izinleri görebilmek amacıyla bu yöntemi sayfalama jetonlarını kullanarak (gösterildiği gibi) birden çok kez çağırabilirsiniz.

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

Looker Studio öğeleri için yalnızca bir izin nesnesi olduğundan sayfalama yapmanız gerekmez.

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

İzin alma başlıklı makaleyi inceleyin.

Güncelle

İzinleri güncelleme konusunda Looker Studio ve Drive API'leri çok benzer işlevlere sahiptir. Temel fark, Looker Studio izninde expirationTime ayarlayamamanızdır.

API Yöntem Uç nokta
Drive PATCH /drive/v3/files/fileId/permissions/permissionId
Looker Studio PATCH /v1/assets/assetId/permissions

Karşılaştırma:

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

Kullanım alanına özel alternatifler için: