Google Apps Script, hapus opsi salin / unduh

Aug 31 2020

Saya ingin tahu apakah ada cara untuk menggunakan Google Apps Script untuk berbagi Google Doc atau Google Sheet, tetapi secara terprogram menonaktifkan fitur salin / unduh untuk pemirsa / komentator pada dokumen? Saat membagikan Google Doc atau Sheet secara normal, Anda dapat membuka ikon pengaturan dan membatalkan pilihan tersebut:

Tetapi dapatkah saya melakukannya melalui Google Apps Script?

Sebagai tindak lanjutnya, adakah cara untuk menonaktifkan opsi ini juga untuk editor? Saya ingin sekali dapat berbagi dokumen dengan seseorang, menjadikannya editor, tetapi mencegah mereka membagikannya dengan orang lain. Terima kasih.

Jawaban

2 Tanaike Aug 31 2020 at 10:45

Dalam hal ini, bagaimana jika menggunakan Drive API? Saya rasa Anda dapat mengaturnya menggunakan Drive API. Dalam jawaban ini, metode "Files: update" dari Drive API v3 digunakan.

Contoh skrip:

Sebelum Anda menggunakan skrip ini, harap aktifkan API Drive di layanan Google Lanjutan .

function myFunction() {
  const fileId = "###";  // Please set the file ID.

  const url = "https://www.googleapis.com/drive/v3/files/" + fileId;
  const res = UrlFetchApp.fetch(url, {
    method: "patch",
    headers: {authorization: "Bearer " + ScriptApp.getOAuthToken()},
    contentType: "application/json",
    payload: JSON.stringify({viewersCanCopyContent: false, writersCanShare: false}),
  });
  console.log(res.getContentText())
  
  // DriveApp.createFile(blob)  // This comment line is used for automatically detecting the scope of "https://www.googleapis.com/auth/drive"
}

catatan:

  • writersCanShare adalah untuk "Editor dapat mengubah izin dan berbagi"

  • viewersCanCopyContent adalah untuk "Pemirsa dan pemberi komentar dapat melihat opsi untuk mengunduh, mencetak, dan menyalin"

    • Ketika saya melihat dokumen resmi, viewersCanCopyContentkata Warning: This item is deprecated. Deprecated - use copyRequiresWriterPermission instead.. Tetapi ketika copyRequiresWriterPermissiondigunakan, pemeriksaan ini tidak dapat mengontrol. Jadi, dalam jawaban ini, saya menggunakan viewersCanCopyContent.
    • Untuk pembaruan di masa mendatang, {viewersCanCopyContent: false, copyRequiresWriterPermission: false, writersCanShare: false}mungkin lebih cocok daripada {viewersCanCopyContent: false, writersCanShare: false}.
  • Di atas sampel, kedua centang tidak dicentang.

    • Kapan copyRequiresWriterPermissionbisa digunakan, saya rasa Drive API v2 mungkin bisa menggunakannya sebagai berikut. Namun saat saya mengujinya sekarang, tampaknya "Pemirsa dan pemberi komentar dapat melihat opsi untuk mengunduh, mencetak, dan menyalin" tidak dapat dikontrol.

        Drive.Files.patch({copyRequiresWriterPermission:false,writersCanShare:false}, fileId);
      
  • Misalnya, saat viewersCanCopyContent: true, writersCanShare: truedigunakan, kedua pemeriksaan tersebut dicentang.

Referensi:

  • File: pembaruan
  • Layanan Google tingkat lanjut