Google Apps Script, hapus opsi salin / unduh
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
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:
writersCanShareadalah untuk "Editor dapat mengubah izin dan berbagi"viewersCanCopyContentadalah untuk "Pemirsa dan pemberi komentar dapat melihat opsi untuk mengunduh, mencetak, dan menyalin"- Ketika saya melihat dokumen resmi,
viewersCanCopyContentkataWarning: This item is deprecated. Deprecated - use copyRequiresWriterPermission instead.. Tetapi ketikacopyRequiresWriterPermissiondigunakan, pemeriksaan ini tidak dapat mengontrol. Jadi, dalam jawaban ini, saya menggunakanviewersCanCopyContent. - Untuk pembaruan di masa mendatang,
{viewersCanCopyContent: false, copyRequiresWriterPermission: false, writersCanShare: false}mungkin lebih cocok daripada{viewersCanCopyContent: false, writersCanShare: false}.
- Ketika saya melihat dokumen resmi,
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