Ошибка разрешений при получении ресурса Coursework из Google Classroom в качестве администратора домена - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть скрипт Google, чтобы получить список всех классов Google в нашем домене edu вместе со всеми заданиями («Курсовая работа») в каждом классе.Запустив его в качестве администратора домена Google, я могу получить список классов, но попытка получить список назначений приводит к ошибке «вызывающий абонент не имеет разрешения».У администраторов домена Google нет прав на получение списка назначений?Нужно ли включать какой-то особый метод аутентификации здесь?

function listCourses() {
  var optionalArgs = {
    pageSize: 20
  };
  var response = Classroom.Courses.list(optionalArgs);
  var courses = response.courses;

  if (courses && courses.length > 0) {
    for (i = 0; i < courses.length; i++) {
      var course = courses[i];
      Logger.log('%s , %s , %s , %s ', course.name, course.id, course.ownerId, course.creationTime);

      var id = course.id;
      // the error "caller does not have permission" occurs here:
      var coursework = Classroom.Courses.CourseWork.list(id)
      var arr=[];
      if (coursework && coursework.length > 0) {
        for (k = 0; k < coursework.length; k++) {
          var cw = coursework[k]; 
          var ids = cw.id;
          var user = cw.creatorUserId;
          var type = cw.workType;
          var ti = cw.title;
          var des = cw.description;
          var st = cw.state;
          var sch = cw.scheduledTime;
          var due = cw.dueDate;
          Logger.log('%s , (%s) , %s , %s', user, ti, des, due);
        }
      }
    }
  }
}

1 Ответ

0 голосов
/ 04 июня 2018

Я сейчас работаю над сценарием, который должен сделать то же самое, и я столкнулся с этой проблемой.

В меню редактора сценариев приложений выберите Вид-> Показать файл манифеста , который открывает файл с именем appsscript.json В этом файле добавьте свойство JSON oauthScopesи установите для него массив URL-адресов запросов авторизации, например:

"oauthScopes": ["https://www.googleapis.com/auth/classroom.coursework.students.readonly",
                 "https://www.googleapis.com/auth/classroom.courses.readonly"
               ]

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

Ресурсы:

https://developers.google.com/classroom/guides/auth https://developers.google.com/classroom/guides/manage-coursework

...