首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法使用GraphAPIv1.0创建ToDo任务

无法使用GraphAPIv1.0创建ToDo任务
EN

Stack Overflow用户
提问于 2020-11-25 09:54:38
回答 1查看 385关注 0票数 0

我正在尝试使用图形api v1.0的ToDo任务特性来使用以下代码创建一个任务

代码语言:javascript
运行
复制
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对象的代码:

代码语言:javascript
运行
复制
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"}}});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-27 08:47:17

将odatatype设置为null之后,还需要为DueDateTimeReminderDateTime设置DueDateTime属性。

例如:

代码语言:javascript
运行
复制
        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" } }
        });
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65002249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档