Google任务更新错误

时间:2011-06-19 19:43:38

标签: javascript google-chrome-extension

我正在尝试使用以下代码更新任务:

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,可以使用一些帮助。

4 个答案:

答案 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修改所需的任务列表。 该问题的答案已经发布,但没有明确的例子。希望这个例子可以帮助某人克服这种新手问题。