Drive API'den taşıma

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

Dosyalar

Data Studio API'de, Drive API dosyaları uç noktaları için yalnızca Files: list uç noktasına eşdeğer bir uç nokta bulunur.

Liste

API Yöntem Uç nokta
Drive POST /drive/v3/files
Data 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",
})

Data 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

Data Studio API'de birden fazla Permissions nesnesini yönetmek için karşılık gelen uç noktalar yoktur. Data 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 (izinleri al) başlıklı makaleyi inceleyin.

Liste

Drive ile Data 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, Data Studio'nun ise tam olarak bir izin nesnesi içermesidir.

API Yöntem Uç nokta
Drive GET /drive/v3/files/fileId/permissions
Data 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);

Data Studio

Data Studio öğeleri için yalnızca bir izin nesnesi olduğundan sayfalama işlemini hesaba katmanı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 Data Studio ve Drive API'leri çok benzer işlevlere sahiptir. Aradaki temel fark, Data Studio izninde expirationTime ayarlayamamanızdır.

API Yöntem Uç nokta
Drive PATCH /drive/v3/files/fileId/permissions/permissionId
Data 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)
})

Data 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: