2014-01-20 3 views
4

я получаю следующее сообщение об ошибке, когда я запустить Google Apps Script:не удается получить разрешение на

Execution failed: You do not have permission to call getFoldersByName

Вот строка кода я бегу:

var folders = DriveApp.getFoldersByName('Mission Response'); 

Когда я запустите скрипт из редактора сценариев, он запускается без каких-либо проблем. Однако я никогда не получаю диалог авторизации (тот, который разрешает DriveApp). Когда я запускаю скрипт изнутри электронной таблицы, сценарий выходит из строя с ошибкой выполнения выше.

+0

Что вы подразумеваете под «Я запускаю сценарий из таблицы» –

+0

Когда редактор сценария закрыт, а сценарий запускается с использованием связанного с ним настраиваемого элемента меню (сценарий содержится в электронной таблице). В итоге получился диалог авторизации, и теперь он работает. – user3216612

+0

У меня такая же проблема! Когда я вызываю функцию напрямую, она работает, но когда я вызываю ее из события OnEdit, она регистрирует ту же ошибку. –

ответ

0

После большой борьбы я нашел решение на this link.

Он утверждает, что вы не можете использовать услуг, которые требуют аутентификации с простыми триггерами, как onEdit().

Зная, что я сделал это, чтобы решить:

У меня было что-то вроде:

function onEdit(){ 
    var folder = DriveApp.gefFoldersByName('My Folder Name').next(); 
    doSomething(folder); 
    ... 
} 

Затем я создал устанавливаемое триггер:

function onEditTrigger(){ 
    var folder = DriveApp.gefFoldersByName('My Folder Name').next(); 
    doSomething(folder); 
    ... 
} 

enter image description here

I надеюсь, что это поможет, поскольку мне потребовалось много времени, чтобы разобраться.

Смежные вопросы