#microsoft-graph-api #microsoft-graph-edu
#microsoft-graph-api #microsoft-graph-edu
Вопрос:
Я хочу создать определенный класс назначений.
В обозревателе графиков,
https://graph.microsoft.com/beta/education/classes/{classId}/assignments
Этот запрос работает хорошо.
Но в моем коде C #,
var assignInfo = new EducationAssignment
{
DisplayName = "test",
DueDateTime = DateTimeOffset.Parse("2020-09-20T18:00:00Z"),
Instructions = new EducationItemBody
{
ContentType = BodyType.Html,
Content = "hi"
},
Status = EducationAssignmentStatus.Draft,
AllowStudentsToAddResourcesToSubmission = true,
AssignTo = new EducationAssignmentClassRecipient
{
},
Grading = new EducationAssignmentPointsGradeType()
{
MaxPoints = 100
},
CreatedDateTime = DateTimeOffset.Parse("2020-09-20T12:00:00Z"),
AssignDateTime = DateTimeOffset.Parse("2020-09-20T13:00:00Z"),
AssignedDateTime = DateTimeOffset.Parse("2020-09-20T13:00:00Z"),
CloseDateTime = null,
AllowLateSubmissions = true
};
await graphClient.Education.Classes[pClassId].Assignments
.Request()
.AddAsync(assignInfo);
Произошла ошибка:
{"Code: 20132rnMessage: The content of the request is invalid. Common causes are an invalid Content-Type header or no content in the body.rnInner error:rntAdditionalData:rntdate: 2020-09-20T07:25:14rntrequest-id: d2181119-9116-4f1d-9ed4-d007e2e406d0rntclient-request-id: d2181119-9116-4f1d-9ed4-d007e2e406d0rnClientRequestId: d2181119-9116-4f1d-9ed4-d007e2e406d0rn"}
Почему это происходит? Я думал и пытался весь день.
Я пытался
await graphClient.Education.Classes[pClassId].Assignments
.Request()
.Header("Content-Type", "application/json")
.AddAsync(assignInfo);
Но произошла та же ошибка.
Если был запрошен только элемент displayname, результаты были такими же.
С разрешениями разобрались. EduAssignments.ReadWriteBasic, EduAssignments.ReadWrite.. etc и dll (пакет NuGet) также подготовлены в бета-версии.
Я ссылался на этот документ.
Я отчаянно нуждаюсь в помощи.. Спасибо.
Комментарии:
1. Был ли класс создан с помощью Teams или с помощью Graph?
Ответ №1:
добавление этого assignInfo.ODataType = null;
устраняет проблему.
Комментарии:
1. Подумайте о том, чтобы добавить еще несколько объяснений, например, куда добавить этот код и как / почему он устраняет проблему.