ASANA API Как обновить подзадачу

Я пытаюсь обновить подзадачу. Точнее, только срок. Я пробовал несколько вещей и потерпел неудачу. Это то, что я пробовал до сих пор:

Попытка 1: URL-адрес: https://app.asana.com/api/1.0/tasks/ JSON: {"data":{"due_on":"18.06.2017, 00:00:00"}} Ошибка: удаленный сервер вернул ошибку: (400) неверный запрос.

Попытка 2: добавлен родительский идентификатор в URL-адрес запроса JSON: /tasks/ JSON: ParentID замаскирован по соображениям безопасности {"data":{"due_on":"18.06.2017, 00:00:00","parent" :{"id":#################,"name":null}}} Ошибка: Удаленный сервер вернул ошибку: (400) Неверный запрос.

попытка 3: использование /subtask в URL URL: /tasks//subtasks/ JSON: {"data":{"due_on":"18.06.2017, 00:00:00"}} ОШИБКА: удаленный сервер вернул ошибка 404 не найдено

Каким должен быть правильный URL-адрес для отправки запроса JSON и что должно быть в запросе на изменение срока выполнения подзадачи?

Любая помощь приветствуется. Спасибо, Вив.


person Vivek Patel    schedule 03.02.2017    source источник


Ответы (1)


Вивек,

Первое, что я заметил, это то, что URL-адрес не содержит идентификатор задачи, которую вы пытаетесь обновить. повторное использование не имеет идентификатора задачи, мы не будем знать, для какой задачи вы пытаетесь установить срок выполнения, так что это может быть одна из вещей, которую вы видите :)

Кроме того, я хотел бы убедиться, что вы используете глагол HTTP PUT для этих запросов; вы можете POST создавать новые задачи в Asana, но для изменения полей существующей задачи мы ожидаем PUT. Поскольку подзадачи в Asana считаются задачами, это можно сделать только на https://app.asana.com/api/1.0/tasks/:task_id маршруте.

Еще одна вещь: установка даты выполнения или срока выполнения в Asana на самом деле является двумя отдельными вещами — для большинства задач установлена ​​дата выполнения, но в нашем веб-приложении вы можете добавить время при установке срока выполнения. В нашем API это представлено полями due_on для дат и due_at для времени. Если вам просто нужна дата выполнения (на основании того факта, что сейчас 00:00), вам, вероятно, понадобится due_on и строка в формате ГГГГ-ММ-ДД (в данном случае 18.06.2017). Если вы хотите установить фактическое время, вы можете использовать due_at с отметкой времени ISO8601, например 2017-06-18T08:00:00Z.

Собрав все вместе, вот запрос на завивку, который я тестировал здесь с «due_at», чтобы сохранить временной аспект:

curl --request PUT \
--header "Authorization: Bearer $ASANA_PERSONAL_ACCESS_TOKEN" \
"https://app.asana.com/api/1.0/tasks/$TASK_ID" -d '{
  "data": {
    "due_at": "2017-06-08T12:00:00Z"
  }
}'

И наконец, совершенно не связанный с этим вопрос: вы случайно не тот самый Вивек Патель, который сейчас работает на Yelp? Если да, то я работал с вами в Sharpcast - мир тесен! Если нет, не беспокойтесь, не стесняйтесь игнорировать!

person Matt    schedule 03.02.2017
comment
У меня неправильный формат даты. После исправления подзадачи обновляют даты. Спасибо, что указали мне правильное направление. Кажется, что когда API используется для создания подзадачи, они отображаются в календаре, но когда подзадача создается с помощью веб-сайта ASANA, подзадачи не в календаре, а внутри задачи. Есть ли что-то, что мне нужно исправить, чтобы подзадача не отображалась в календаре? - person Vivek Patel; 06.02.2017
comment
Хм, интересно. Похоже, это действительно может быть ошибка — я зарегистрирую ее, чтобы довести до сведения команды. Спасибо! - person Matt; 11.02.2017