2016-04-01 26 views
1

İlk Google E-Tablolar Uygulama Komutumumu deniyorum. İçinde bulunduğumuz hücrenin korunup korunmadığını kontrol edecek özel bir işlev (ciltli komut dosyası aracılığıyla) yapmaya çalışıyorum. Korunuyorsa, hücrenin değerini koruma türü için (şimdi en azından) değiştirmelidir.Google apps komut dosyası hatası: "Korumayı arama izniniz yok"

başarıyla dokümanlar basit bir demo komut çalıştırabilirsiniz:

function DOUBLE(input) { 
    return input * 2; 
} 

Ama Range çağrılırken :: korumak, bir hata Burada

"You do not have permission to call protect" 

fonksiyon

function isProtected() { 
var range = SpreadsheetApp.getActiveRange(); 
var protection = range.protect(); 
return protection.getProtectionType(); 
} 
var olabilir

Aynı zamanda diğer bazı işlevlerle de aynı izin hatasıyla karşılaşıyorum. Session.getEffectiveUser(). Bunun bir özel işlev olduğundan ve (yalnızca) sayfa sahibi olduğumdan, bu yöntemleri çağırabilirim diye düşündüm. Neyi kaçırıyorum? Teşekkürler.

Bazı yayınların bununla şansı olduğundan, ancak benim için hiç şans olmadığından, komut dosyasını yeni bir sayfanın komut dosyası düzenleyicisine kopyalamayı denedim.

cevap

4

Özel işlev anonim olarak çalışır, bu nedenle örtük sonuç kimlik doğrulaması gerektiren hiçbir şey yapamayacakları için.

bir range protection değiştirme Bunu kullanmak ve almak mesajı ... getEffectiveUser() için

Aynı durum olsun, çok bir provizyon talep edemez, bu yüzden bir yetkilendirme gerektirir.

Reference in docs:

Unlike most other types of Apps Scripts, custom functions never ask users to authorize access to personal data. Consequently, they can only call services that do not have access to personal data

+0

teşekkürler! Belli ki, doktorlara yeterince derin okumadım. İhtiyacım olan şeyi elde etmek için başka bir yaklaşım deneyeceğim, sayfaya bağlı olan ve bir kullanıcının bir eklenti yüklemesini gerektirmeyecek bir şey. – michael

İlgili konular