我正在尝试使用图形api v1.0的ToDo任务特性来使用以下代码创建一个任务
var result = graphServiceClient.Users[outlookUserId].Todo.Lists[listid].Tasks.Request().AddAsync(todoTask).Result;但是,我得到了以下错误:
代码: invalidRequest消息:模型无法解析名为“microsoft.toDo.todoTask”的类型。当模型可用时,每个类型名称必须解析为有效类型。内部错误:代码: InvalidModel AdditionalData:日期: 2020-11-25T09:41:04请求-id: 39794548-8f63-443e-a8bc-76ad6091dc8d客户端-请求-id: 39794548-8f63-443e-a8bc-76ad6091dc8d ClientRequestId: 39794548-8f63-443e-a8bc-76ad6091dc8d
为了解决上述问题,我已经将todoTask的odatatype设置为null,但得到了另一个异常:
代码: invalidRequest消息:模型无法解析名为“microsoft.toDo.dateTimeTimeZone”的类型。当模型可用时,每个类型名称必须解析为有效类型。内部错误:代码: InvalidModel AdditionalData:日期: 2020-11-25T09:43:27请求-id: 0780add8-3f17-40c5-a92b-e9e62ad08bf8客户机-请求-id: 0780add8-3f17-40c5-a92b-e9e62ad08bf8 ClientRequestId: 0780add8-3f17-40c5-a92b-e9e62ad08bf8
为了解决上述问题,我将todoTask的DateTimeZone类型的所有数据成员的odatatype设置为null,但随后得到以下异常:
代码: invalidRequest消息:模型无法解析名为“microsoft.toDo.itemBody”的类型。当模型可用时,每个类型名称必须解析为有效类型。内部错误:代码: InvalidModel AdditionalData:日期: 2020-11-25T09:46:11请求-id:5 bafbca-5090-47b5-ac8e-8c96ec1d6592客户机-id:5 bafbca-5090-47b5-ac8c96ec1d6592 ClientRequestId: 5 bafbCa-5090-47b5-ac8e-8c96ec1d6592
为了解决上述问题,我将todoTask body的odatatype设置为null,但现在我得到了无法解决的以下异常:
代码: generalException消息:内部服务器错误内部错误: AdditionalData:日期: 2020-11-25T09:48:23请求-id:f5d52f43-c0b4-425e-83ec-652 fadb7abf9客户端-id:f5d52f43-c0b4-c0b4-425e-83ec-652 f4f43-c0b4-425e-83ec-652 fadb7abf9
对于我们的应用程序,我们需要创建任务并同步到outlook,因为这将进入生产阶段,我们不能使用beta版本。有人能帮我拯救这个任务吗。
更新:
下面是我如何设置TodoTask对象的代码:
var todoTask = new TodoTask();
todoTask.Title = "Subject";
todoTask.DueDateTime = new DateTimeTimeZone() { DateTime = dueDate.Date.ToString()};
todoTask.Status = TaskStatus.NotStarted;
todoTask.Importance = Importance.Normal;
todoTask.Body = new ItemBody
{
Content = "Test",
ContentType = BodyType.Text
};
todoTask.IsReminderOn = true;
todoTask.ReminderDateTime = new DateTimeTimeZone() {
DateTime = reminderTime.Value.ToString() };
todoTask.Extensions = new TodoTaskExtensionsCollectionPage();
todoTask.Extensions.Add(new OpenTypeExtension{
ExtensionName = "TestProperty",
AdditionalData = new Dictionary<string,object>{{"MyProp","MyValue"}}});发布于 2020-11-27 08:47:17
将odatatype设置为null之后,还需要为DueDateTime和ReminderDateTime设置DueDateTime属性。
例如:
var todoTask = new TodoTask();
todoTask.Title = "Subject2";
todoTask.ODataType = null;
DateTime dueDate = DateTime.UtcNow.Date;
DateTime reminderTime = DateTime.UtcNow.Date;
todoTask.DueDateTime = new DateTimeTimeZone() {
TimeZone = "UTC",
ODataType = null,
DateTime = dueDate.Date.ToString()
};
todoTask.Status = TaskStatus.NotStarted;
todoTask.Importance = Importance.Normal;
todoTask.Body = new ItemBody
{
ODataType = null,
Content = "Test",
ContentType = BodyType.Text
};
todoTask.IsReminderOn = true;
todoTask.ReminderDateTime = new DateTimeTimeZone()
{
TimeZone = "UTC",
ODataType = null,
DateTime = reminderTime.Date.ToString()
};
todoTask.Extensions = new TodoTaskExtensionsCollectionPage();
todoTask.Extensions.Add(new OpenTypeExtension
{
ExtensionName = "TestProperty",
AdditionalData = new Dictionary<string, object> { { "MyProp", "MyValue" } }
});https://stackoverflow.com/questions/65002249
复制相似问题