Сущность не найдена Ошибка в Google Classroom при создании задания с материалом STUDENT_COPY

Я программно отправляю назначение в Google Classroom, и при присоединении материала с использованием STUDENT_COPY shareMode я вижу другое поведение, чем при использовании VIEW shareMode.

Следующий код работает нормально:

var resource = {
    title: name,
    description: explanation,
    workType: 'ASSIGNMENT',
    state: 'PUBLISHED'
};

resource.materials = [];
resource.materials.push({
    driveFile: {
        driveFile: {
            id: 'fileId'
        },
        shareMode: 'VIEW'
    }
});     
var params = {auth: creds, courseId: courseId, resource: resource};
classroom.courses.courseWork.create(params, function (err, courseWorkResponse) {
  /* handle response */
}

С этим кодом, назначение создается, и я вижу его в Google Classroom. Однако, если я устанавливаю shareMode в STUDENT_COPY вместо VIEW, я получаю следующую ошибку:

{ Error: Requested entity was not found.
    at Request._callback (/Users/.../node_modules/googleapis/node_modules/google-auth-library/lib/transporters.js:85:15)
    at Request.self.callback (/Users/.../node_modules/googleapis/node_modules/request/request.js:188:22)
    at emitTwo (events.js:106:13)
    at Request.emit (events.js:191:7)
    at Request.<anonymous> (/Users.../node_modules/googleapis/node_modules/request/request.js:1171:10)
    at emitOne (events.js:96:13)
    at Request.emit (events.js:188:7)
    at IncomingMessage.<anonymous> (/Users/.../node_modules/googleapis/node_modules/request/request.js:1091:12)
    at IncomingMessage.g (events.js:292:16)
    at emitNone (events.js:91:20)
  code: 404,
  errors:
   [ { message: 'Requested entity was not found.',
       domain: 'global',
       reason: 'notFound' } ] }

Назначение не создается в Google Classrom. Тем не менее, я вижу копию [Template] Google Doc, которую я указал в driveFile.id, помещенную в мой Google Drive.

Я пробовал это с несколькими различными документами, некоторые из которых были в основном документами google уровня "Hello World", поэтому я сомневаюсь, что проблема связана с документом.

Кроме этого, я не уверен, что может происходить. Я предполагаю, что где-то должна быть какая-то проблема с разрешениями, но кто-нибудь еще знает, что может происходить?

РЕДАКТИРОВАТЬ: Дополнительная информация

Кажется, проблема с "публикацией" задания. Если я установлю resource.state в DRAFT Я могу успешно выполнить coursework.create Вызов API. Я получаю экземпляр объекта CourseWork, как и ожидалось.

Проблема в том, что мне нужно в конечном итоге опубликовать задание. И когда я пытаюсь выполнить classroom.courses.courseWork.patch() вызов API, чтобы просто изменить состояние с черновика на опубликовано, я получаю то же самое Requested entity was not found ошибка.

Однако я могу зайти в сам Google Classroom, просмотреть свои черновики и нажать кнопку ASSIGN в приложении. Если я это сделаю, все, наконец, работает! Этот поток пользовательского интерфейса мне не подходит. Но это показывает, что в этом нет ничего плохого, насколько я могу судить, с заданием. Кажется, я просто пропускаю какой-то (недокументированный?) Шаг, необходимый в моем случае.

1 ответ

Это происходит потому, что объект еще не существует, потому что ученики еще не получили задание в классе. Поэтому убедитесь, что они делают, и попробуйте снова.

Ссылка:

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

Другие вопросы по тегам