我正在尝试使用以下代码更新任务:
function updtsk(task,id)
{
var url = 'https://www.googleapis.com/tasks/v1/lists/@default/tasks/'+id;
var req = {
'method': 'PUT',
'headers': {
'Content-type': 'application/json'
},
'body': JSON.stringify(task)
};
var addDone = function(resp, xhr) {
if (xhr.status != 200) {
notifyFailure('Couldn\'t update task.', xhr.status);
return;
}
//notifySuccess(task['title']);
}
oauth.sendSignedRequest(url, addDone, req);
}
但我收到以下错误:
"{
"error": {
"errors": [
{
"domain": "global",
"reason": "invalid",
"message": "Invalid Value"
}
],
"code": 400,
"message": "Invalid Value"
}
}
"
更新正文如下:
{
'title': $(this).val()
};
我正在使用chrome_ex_oauth api,可以使用一些帮助。
答案 0 :(得分:12)
尝试将'id'键/值对与您已发送的标题信息一起传递。
即使使用API资源管理器,我也遇到了同样的问题。没有文档表明这是必需参数,特别是因为它包含在URL中。一旦我添加了id,它就能正常工作。
答案 1 :(得分:2)
您可能需要在更新中包含其他字段。
此处的文档:http://code.google.com/apis/tasks/v1/reference.html#resource_tasks似乎表示 status 属性不是可选的(其他可变字段在其说明中列为可选字段)。您可能还需要包含种属性以及此处指示的静态值。
答案 2 :(得分:0)
在Google Task API中更新任何TaskList任务:
首先,我们必须使用TaskList Id和Task Id来完成任务
第二步更改/更新任务并再次更新该任务
希望这对你有所帮助。
答案 3 :(得分:0)
我多次阅读了这些答案,但只看到了我以为我已经知道的东西,这是错误的。用于insert / update / etc的文档。状态
POST https://www.googleapis.com/tasks/v1/lists/tasklist/tasks
它是被修改的 任务列表 的 id (例如,类似“ MTA1MjEpoqwdNTMzMjAzo349YDA6MDow”之类的东西),而不是标题 任务列表 的em>例如需要在POST请求标头中传递的“我的任务列表”,例如
POST https://www.googleapis.com/tasks/v1/lists/MTA1MjEpoqwdNTMzMjAzo349YDA6MDow/tasks
您可以通过执行任务列表“列表”查询来找到列表的ID。
GET https://www.googleapis.com/tasks/v1/users/@me/lists
返回,例如像这样的东西:
{
"kind": "tasks#taskList",
"id": "MTA1MjEpoqwdNTMzMjAzo349YDA6MDow",
"title": "My Task List",
"updated": "2019-03-15T21:21:03.000Z",
"selfLink": "https://www.googleapis.com/tasks/v1/users/@me/lists/MTA1MjE0Njc5NTMzMjA1NDk0NDA6MDM1NDgwMjIxODgyMjcyODow"
}
您可以在响应中看到任务列表ID,然后可以在POST中使用该ID修改所需的任务列表。 该问题的答案已经发布,但没有明确的例子。希望这个例子可以帮助某人克服这种新手问题。