我使用google tasks api,Patch()。
此请求不起作用:
{
"status": "needsAction",
}
但是这个请求没问题:
{
"status": "needsAction",
"completed": null
}
我使用.NET,如果我这样做
var task = new Google.Apis.Tasks.v1.Data.Task ()
{
Status = "needsAction",
Completed = null
};
然后,他只是忽略了“已完成”而我收到错误。
答案 0 :(得分:0)
您是否尝试过DateTime.MinValue而不是null? 因为它应该是DateTime类型,并且这是一个不能赋值为null的结构。所以通常你不应该分配它,除非你需要它或者用DateTime.MinValue或DateTime.MaxValue分配...
此外,当您遇到错误时,您应该真正关注它提供的信息。这通常是解决问题的最简单方法,通过实际了解错误消息告诉您的内容。
在你的情况下,我猜你甚至无法编译,因为对日期时间的空分配是非法的。
答案 1 :(得分:0)
我使用API Explorer进行了一些测试 https://developers.google.com/google-apps/tasks/v1/reference/tasks/update#try-it 我发现服务器需要'id'字段以及'status'字段。
它不需要'completed'字段,因为当'status'设置为“needsAction”时,服务器上会自动删除'completed'字段。
因此,您只需要任务的原始ID。
e.g。 (在我的示例任务的API资源管理器中) { “status”:“needsAction”, “id”:“MTQwMDY3NzIwMTg5MTk4MzczOTA6MDoxNjQzNjkwMDc5” }
我希望这有帮助,
朱莉
答案 2 :(得分:0)
如果底层调用使用补丁语义,则在从status = completed更改为status = needsAction时,必须在同一操作中将completed设置为nil。这是设计的。
答案 3 :(得分:0)
使用
Google.Apis.Tasks.v1
你必须定义; Status = needsAction
,Completed = null
以及CompletedRaw = null
。
C#
.Status = "needsAction";
.CompletedRaw = null;
.Completed = null;
VB.NET
.Status = "needsAction"
.CompletedRaw = Nothing
.Completed = Nothing