API Asana Webhooks
Поэтому я реализовал API Asana Webhooks, как описано в их документах. Я могу передать ему идентификатор проекта и запросить создание нового webhook. API успешно отправляет запрос аутентификации в мое приложение, которое возвращает заголовок Security, как описано в Документах. Затем Асана возвращает ожидаемый ответ об успехе, обрисовав в общих чертах недавно созданный уникальный идентификатор Webhooks
Теперь, если я возьму этот идентификатор и затем запросю API Asana, чтобы показать мне все настроенные webhook либо в родительской рабочей области, либо непосредственно в ресурсе проекта, он вернет пустой объект JSON данных или сообщит, что ресурс не существует, предполагая, что Webhook Ive только что создал на самом деле не был создан, несмотря на то, что дал мне ожидаемый успех.
Кроме того, если я внесу изменения в проект, он не сработает, и я не получу никаких событий в моем приложении.
Странно все работало в пятницу, но сегодня (понедельник) я испытываю эти проблемы.
Любые указатели были бы хороши, я работал, как предполагают Документы, с точки зрения структуры моего запроса, и я проверяю подлинность с использованием PAT, я даже пробовал вновь созданный токен.
Спасибо,
1 ответ
Наши веб-зацепки используют механизм рукопожатия, чтобы убедиться, что вам можно перезвонить, но всегда есть вероятность того, что последующие запросы могут потерпеть неудачу. Кроме того (хотя мы не очень хорошо это документируем - у нас есть такая возможность), мы должны немедленно попытаться доставить (возможно) пустое событие после рукопожатия (похоже, {"events":[]}
, Это похоже на "второй обратный вызов", который содержит все, что изменилось с момента создания веб-крюка.
Если это не удастся - или если какой-либо последующий запрос будет терпеть неудачу достаточно часто - webhook будет разбит "Отказ" в данном контексте означает возврат кодов ответа HTTP, отличных от 200 или 204.
Что касается того, почему у вас возникли проблемы с запросом к самому веб-крюку, я не смог воспроизвести проблему, поэтому нам пришлось бы углубиться. Это должно быть хорошо, если вы:
- Укажите рабочее пространство
- При желании укажите ресурс
Я проверил это, и это казалось нормальным. Вы также можете напрямую запросить webhook по id с помощью /webhooks/:id
конечная точка - примечание об использовании идентификатора webhook, возвращенного create
а не идентификатор в resource
поле.
Если вы создали webhook (в частности, ваше приложение PAT или OAuth было тем, которое отправляло запрос на создание), вы должны увидеть информацию очень хорошо. Если вы можете получить webhook по id, вы должны увидеть last_failure_at
а также last_failure_content
поля, в которых будет указано, почему веб-крючок не смог выполнить доставку.
Наконец, если вы хотите связаться с нами по api-support@asana.com
и дайте им знать больше деталей (например, идентификатор webhook, на который вы пытаетесь взглянуть), мы можем посмотреть на эти поля с нашей стороны, чтобы увидеть, можем ли мы определить, что происходит.