Drive API'den taşıma

Bu dokümanda, izin yönetimi için Drive API'yi kullanarak Looker Studio API'ye nasıl kod taşıyacağınız açıklanmaktadır. Yaygın Drive API uç noktaları için ilgili Looker Studio API kodunu gösterir.

Files

Looker Studio API'nin, Drive API dosyaları uç noktaları için yalnızca Files: list uç noktası için eşdeğer bir uç noktası vardır.

Liste

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

Karşılaştırma:

Sürüş

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

Arama öğelerini 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ç nokta yoktur. Looker Studio öğesi için yalnızca bir izin nesnesi vardır ve bu nesne her zaman mevcuttur.

  • Bir kişiyi öğeden kaldırmak için tüm izinleri iptal etme bölümüne bakın
  • Bir öğeye kullanıcı eklemek için üye ekleme bölümüne bakın
  • Bir öğenin izinler nesnesini görüntülemek için izin alma bölümüne bakın.

Liste

Drive ile Looker Studio arasında bire bir eşleşme yoktur ancak uç noktalar benzer hedeflere hizmet eder. Temel fark, Drive dosyasında çok sayıda izin nesnesi bulunurken Looker Studio'da tam olarak bir tane izin nesnesi bulunmasıdır.

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

Karşılaştırma:

Sürüş

Aşağıdaki kod, Drive API için tüm izin nesnelerini listeler. Kodunuza bağlı olarak, bir dosya için ayarlanmış tüm izinleri görebilmenizi sağlamak üzere sayfalandırma jetonlarını (gösterildiği gibi) kullanarak bu yöntemi 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 öğesi için yalnızca bir izin nesnesi bulunduğundan, sayfalara ayırma işlemini dikkate almanı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 bölümünü inceleyin.

Güncelle

Looker Studio ve Drive API'leri, izinleri güncelleme açısından birbirine çok benzer işlevlere sahiptir. Temel fark, Looker Studio izninde expirationTime değeri 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:

Sürüş

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 bkz.