#webhooks #zapier #asana #asana-api
#webhooks #zapier #asana #asana-api
Вопрос:
Мы используем «Проект» Asana, доступный только для чтения, для управления нашей проектной работой. Наша проектная работа организована как задачи Asana. Каждая задача представляет собой отдельный дизайн-проект. Причина, по которой он доступен только для чтения, заключается в том, чтобы ограничить пользователей Asana от случайного внесения изменений в детали проекта и запретить пользователям Asana создавать свои собственные задачи, которые выходят за рамки стандартной структуры задач, которую мы выбрали.
Для создания этих задач в Asana мы используем комбинацию Co&nito forms и Zapier для автоматического создания задач. Наш клиент заполняет форму Co&nito, и Zapier автоматически заполняет Asana задачей проектирования, которую необходимо выполнить для этого конкретного клиента.
Проблема с этой настройкой заключается в том, что для перемещения задач в Asana для предоставления команде «обновлений» это должен сделать либо пользователь Asana с правами на запись, либо пользователь Asana должен заполнить форму для внесения изменений, поскольку у них есть права только на чтение. Мы предпочли бы, чтобы это было очень просто, и я нашел способ сделать это с помощью Zapier webhooks.
Поскольку мы используем Zapier, я могу форматировать URL-ссылки любым удобным мне способом. Я могу создать URL-ссылку, которая включает идентификатор задачи Asana и раздел Asana, в который необходимо переместить задачу. Используя webhooks, пользователь может щелкнуть URL-адрес «Изменить раздел». Нажатие на этот URL вызовет действие Zapier Zap, которое затем изменит раздел задач Asana. Просто щелкнув ссылку, пользователь может внести изменения в эту задачу.
Мой вопрос довольно простой. Есть ли способ запретить URL-адресу открывать страницу, но при этом данные в URL-адресе по-прежнему передавались в Zapier? Когда пользователь нажимает на ссылку, открывается веб-страница, а я не хочу, чтобы это происходило. Или, если это произойдет, может ли веб-страница сразу закрыться после открытия?
Ответ №1:
Короткие ответы таковы: «нет, невозможно щелкнуть ссылку zapier и страница не откроется или автоматически закроется» из коробки.
Длинный ответ немного сложнее. Я предполагаю, что ваш URL-адрес выглядит примерно так https://hooks.zapier.com/hooks/catch/1234/abcd?name=johnamp;cool=true
, позволяя вам передавать «name» и «cool» в Zapier.
Чтобы передать это в Zapier, вам необходимо получить содержимое этого URL-адреса, либо загрузив его в веб-браузер, либо вызвав его с помощью другого инструмента (такого как fetch
или curl
).
Если у вас есть некоторые инженерные ресурсы, вы могли бы разместить где-нибудь очень простую HTML-страницу, которая могла бы принимать данные и запускать некоторый Javascript. Это сделало бы что-то вроде:
- прочитайте URL-адрес Zapier webhook из строки запроса (возможно, стоит закодировать)
- При загрузке страницы запустите
await fetch(thatUrl)
- Попросите пользователя закрыть страницу (что обеспечивает лучший пользовательский интерфейс, чем ответ JSON или black, который вы получаете от Zapier). Я думал, что JS может закрыть любую страницу, но оказывается,
window.close()
это работает, только если скрипт открыл страницу (docs).
Итак, это приемлемое решение.