Сущность не найдена Ошибка в 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, могут еще не существовать, если учащийся не получил доступ к заданию в классе.