Как обратиться к моему списку задач в автономном скрипте, который будет использоваться другим пользователем - PullRequest
0 голосов
/ 24 апреля 2019

У меня есть электронная таблица, связанная с автономным скриптом, который импортирует задачу из моего списка задач.Он отлично работает, когда я пользователь, но не работает с общей учетной записью пользователя.

Коды в автономном скрипте:

function getTasks() {

  var tasklistID="mytasklistid";  
  var tasks=Tasks.Tasks.list(tasklistID);
  return tasks

}

Код в скрипте Bound:


function getTask(){

var tasks = TaskManagerScript.getTasks()
Browser.msgBox(tasks)

}

Когда я запускаю код в своей учетной записи, я получаю задачи из списка задач с указанным идентификатором, как и ожидалось.Но когда я запускаю его из другой учетной записи, я получаю список задач другого пользователя.

Как заставить код возвращать задачи из списка с указанным идентификатором, когда другие пользователи запускают его.

Ответы [ 2 ]

1 голос
/ 25 апреля 2019
  • Вы используете связанный с контейнером сценарий Spreadsheet, и связанный скрипт устанавливает библиотеку.
  • Электронная таблица доступна пользователям. Вы являетесь владельцем таблицы.
  • Вы хотите, чтобы пользователи использовали ваш идентификатор задачи.
  • Вы хотите запустить скрипт с помощью триггера события OnEdit.

Если мое понимание верно, как насчет этого ответа?

Триггер события OnEdit запускается как владелец электронной таблицы. Поэтому, когда пользователи редактируют электронную таблицу, скрипт запускается с вашим идентификатором списка задач. Но из твоего вопроса это when I run it from a different user account I get the the tasklist of the other user.. Я мог бы подтвердить, что в моей среде, когда пользователи редактируют общую таблицу, сценарий запускается от имени владельца (меня), и может использоваться мой идентификатор списка задач. К сожалению, я не смог воспроизвести вашу ситуацию. Итак, чтобы подтвердить эту ситуацию, можете ли вы проверить следующий поток?

Поток образца для тестирования:

  1. Создать новую электронную таблицу.
  2. Откройте редактор скриптов и установите библиотеку TaskManagerScript.
  3. Включить API задач в Advanced Google Services.
  4. Поместите скрипт в редактор скриптов. Сценарий выглядит следующим образом.

    function getTask(e) {
      var tasks = TaskManagerScript.getTasks();
      e.source.appendRow([JSON.stringify(tasks)]);
    }
    
  5. Установить триггер OnEdit на getTasks().

  6. Для авторизации, пожалуйста, запустите getTasks() в редакторе сценариев и авторизуйте области действия.
    • В этом случае возникает ошибка. Но не волнуйся. Это действие используется только для авторизации.
    • Это разрешение может не потребоваться. Но это на всякий случай.
  7. Поделитесь таблицей с пользователем, который не является вашим аккаунтом.
  8. Пользователь редактирует лист.

По вышеописанному потоку, когда пользователь редактирует лист, возвращается результат, полученный с вашим идентификатором списка задач.

Примечание:

  • Когда триггер события OnEdit запускает сценарий, редактируя ячейки пользователями, сценарий запускается как владелец электронной таблицы. Но когда скрипт запускается нажатием кнопки на листе и в пользовательском меню, скрипт запускается от имени каждого пользователя. Пожалуйста, будьте осторожны.

Справка:

0 голосов
/ 24 апреля 2019

Запускайте свои скрипты как веб-приложения, которые всегда запускаются как вы.Насколько я знаю, задачи не позволяют делиться или позволяют управлять задачами других людей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...