Как разрешить области OAuth в GSheets и при вызове функции GClassroom, чтобы получить данные о назначениях и отправить их в GSheet? - PullRequest
1 голос
/ 31 марта 2020

Я не знаю JSON, поэтому я пытаюсь закодировать это с помощью GScript. Я хочу объединить вызов этой функции, которая получает информацию о классе из работающей функции сценария, которая отправляет информацию о массиве в таблицу GS.

При первом запуске сценария ниже я включил аутентификацию API и получил информация, в которой я нуждался, хотя только в Logger.

var email = "my_email@something.org";

function countWork(email) {
  var courseId = "valid_courseId";  
  var data = ""; // String of resulting information from loop below
  var assignments = Classroom.Courses.CourseWork.list(courseId);
  var length = assignments.courseWork.length;
  // Loop to gather info
    for (j = 0; j < length; j++) {
    var assignment = assignments.courseWork[j];        
    var title = assignment.title;
    var created = assignment.creationTime;
    Logger.log('-->Assignment No. %s -->%s -->(%s)',j+1,title,created);  
    }
    return data;
}

Но по какой-то причине я не могу определить области OAuth в этой версии скрипта, где я заменил массив, необходимый для публикации в GSheet. Я получаю сообщение об ошибке «Класс не определен (строка 7 ...)». Что мне нужно сделать, чтобы Classroom.Courses.et c был распознан?

var email = "my_email@something.org";

function extractAssignmentData(email) {
  var courseId = "valid_courseId"; //
  var data = []; // Array of resulting information from loop below
  var assignments = Classroom.Courses.CourseWork.list(courseId); // error: Classroom is not defined (line 7)
  var length = assignments.courseWork.length;

  // Loop to gather data
    for (j = 0; j < length; j++) {
    var assignment = assignments.courseWork[j];  
    // types of information: description, creationTime, updateTime, dueDate, dueTime, workType 

    var title = assignment.title;
    var created = assignment.creationTime;
    var info = [j+1,title,created];
    data.push(info);   
    }
    return data;
}

1 Ответ

0 голосов
/ 01 апреля 2020

Большое спасибо, Танайке, за ваши полезные ответы!

На основании ваших предложений я смог найти этот пост , в котором подробно описывается, как обращаться к файлу манифеста, и как включить области в appsscript. json.

Я до сих пор не уверен, почему первая версия скрипта вызвала область действия

"https://www.googleapis.com/auth/classroom.coursework.students "

в то время как второй вместо этого добавил это:

" https://www.googleapis.com/auth/classroom.coursework.me.readonly "

Но, поскольку я теперь знаю как добавить то, что мне нужно, и получить доступ к информации о классе, которая мне нужна, это немой вопрос. Еще раз спасибо! (Я не уверен, как пометить ваш комментарий как ответ на мой вопрос - вы должны получить очки!)

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