#google-api #google-drive-api #google-classroom
#google-api #google-drive-api #google-classroom
Вопрос:
Используя Google Classroom API, я просто пытаюсь создать курсовую работу (задание), где я могу назначить папку диска для этой курсовой работы, а затем я могу загружать вложения в эту конкретную папку.
Я пробовал в браузере использовать их API Explorer, но тоже не работает.
Вот мой код;
const classroom = google.classroom({version: 'v1', auth});
classroom.courses.courseWork.create({
"courseId": assignmentCreationRequest.courseId,
"resource": {
"title": assignmentCreationRequest.title,
"description": assignmentCreationRequest.description,
"workType": "ASSIGNMENT",
"state": "PUBLISHED",
"topicId": assignmentCreationRequest.topicId,
"assignment":
{
"studentWorkFolder": {
"id": "1wTM6YYAk1rp4TtsEQwjZnb3qMbR9iPbe"
}
}
}
})
Папка была создана внутри папки Classroom courses в качестве родительской.
Единственный способ, который я нашел для создания такой папки, — это; при создании курсовой работы добавьте материалы, для которых режим общего доступа установлен на ‘STUDENT_COPY’, тогда API сам создаст папку. Это обходной путь, при котором я могу удалить все содержимое после создания папки, но, конечно, есть более классный способ?
Любая помощь будет высоко оценена!
Ответ №1:
Ответ:
Вы не можете назначить определенную, ранее существовавшую папку на диске для CourseWork
.
Эта папка автоматически создается Google при создании CourseWork
, если workType
она есть ASSIGNMENT
.
Кроме того, studentWorkFolder
будет создан только в том случае, если там есть контент для размещения, будь то studentSubmission или Материал, прикрепленный к курсовой работе.
Ссылка:
Если вы проверите поля курсовой работы, вы увидите, что assignment
(содержащий studentWorkFolder
) доступен только для чтения:
задание: сведения о задании. Это заполняется только тогда, когда WorkType присваивается.
Доступно только для чтения.
Поэтому это поле будет проигнорировано.
Комментарии:
1. Я пробовал без назначения определенной, ранее существовавшей папки на диске, но это не сработало. После создания задания никакая папка для этого задания автоматически не создается, если только в ней нет материалов или вложений от учащихся. Я могу изменить привязки для вновь созданного назначения, поскольку такая папка не создана. Это способ инициировать создание папки после создания назначения?
2. @smkso
studentWorkFolder
Будет создан только в том случае, если там есть контент для размещения, будь то astudentSubmission
илиMaterial
прикрепленный к курсовой работе. Если вы считаете, что это не подходит для вашей ситуации, я бы посоветовал вам подать запрос на функцию в Issue Tracker.3. @lamblichus Теперь я понимаю. Я нашел способ справиться со своей ситуацией. Спасибо
Ответ №2:
Как ответил @lamblichus, невозможно назначить конкретную папку при создании courseWork
.
studentWorkFolder
Будет создан только тогда, когда;
- Вы предоставляете материал с
shareMode
установленным значениемSTUDENT_COPY
. - Когда студент отправляет вложения к своей заявке.
В моем случае, когда для каждой отправки я хотел бы modifyAttachments
использовать пользовательские файлы, я создал папку с именем course
, затем поместил все вложения в папку с правильными разрешениями, затем с помощью modifyAttachments
я добавляю идентификатор файла к идентификатору отправки. Это все равно не создаст a studentWorkFolder
, но я могу modifyAttachments
сделать это для каждого ученика.
Если бы я должен был добавить materials
, где shareMode
находится STUDENT_COPY
, который это создаст studentWorkFolder
, содержащий файлы, тогда я должен был удалить все содержимое папки; это означает, что у меня будет studentWorkFolder
ссылка на courseWork
, прикрепленные материалы все равно будут доступны / показаны. patch
не позволяет обновлять materials
.
Я надеюсь, что это поможет тем, кто также находится в подобной ситуации.