Ошибка обновления задач Google - PullRequest
3 голосов
/ 19 июня 2011

Я пытаюсь обновить задачу с помощью следующего кода:

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()
};

Я использую API chrome_ex_oauth и могу использовать некоторую помощь.

Ответы [ 4 ]

12 голосов
/ 30 декабря 2011

Попробуйте передать пару ключ / значение 'id' вместе с информацией о заголовке, которую вы уже отправляете.

У меня была такая же проблема, даже с использованием проводника API. Нет документации, указывающей, что это обязательный параметр, тем более что он включен в URL. Как только я добавил id, он работал правильно.

2 голосов
/ 20 июня 2011

Возможно, вам нужно включить дополнительные поля в обновление.

Документация здесь: http://code.google.com/apis/tasks/v1/reference.html#resource_tasks указывает на то, что свойство status не является необязательным (другие изменяемые поля перечислены как необязательные в их описании) Вам также может понадобиться включить свойство kind со статическим значением, указанным там.

0 голосов
/ 16 марта 2019

Я прочитал эти ответы несколько раз, но увидел только то, что, как мне показалось, я уже знал, что было неправильно. Документация для вставки / обновления / и т.д. состояния

POST https://www.googleapis.com/tasks/v1/lists/tasklist/tasks

Это id из списка задач , который изменяется (например, что-то вроде «MTA1MjEpoqwdNTMzMjAzo349YDA6MDow»), а не title список задач например «Мой список задач», который необходимо передать в заголовке запроса POST, например,

POST https://www.googleapis.com/tasks/v1/lists/MTA1MjEpoqwdNTMzMjAzo349YDA6MDow/tasks

Вы можете найти идентификатор списка, выполнив запрос к списку задач.

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"
  }

Вы можете увидеть идентификатор списка задач в ответе, который затем можно использовать в POST для изменения желаемого списка задач. Ответы на этот вопрос были опубликованы, но ни одного с явными примерами. Надеюсь, этот пример поможет кому-то преодолеть эту новичковскую проблему.

0 голосов
/ 28 сентября 2011

В API задач Google для обновления любой задачи TaskList:
Сначала мы должны получить задачу с использованием TaskList Id и Task Id
Второй шаг - изменить / обновить задачу и снова обновить эту задачу.
Надеюсь, это полезно для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...