Webhook без веб сервера
Этот пост немного устарел, но он уже переписан и актуализирован тут 👈 Рекомендую сразу читать статью по ссылке
- Все упоминания
poll.gmod.app
в этом посте заменены наpoll.def.pm
(но оба домена рабочие в демо режиме)
Проблема
Если развернуть веб сервер с вебхуком возможности нет, а принимать сообщения от какого-то сервиса (например Telegram) нужно, мы используем polling. Это когда мы сами спрашиваем у сервиса, нет ли у него для нас новостей. В случае с Telegram, это происходит через запрос getUpdates.
Но что, если сервис не имеет своего поллинг сервера и предлагает лишь доставку апдейтов на webhook, как например GitHub? Или есть ряд других проблем, которые перечислены в разделе "Применения"?
Решение
poll.def.pm
— микросервис, который может выступить в качестве вебхука, а сам отдавать обновления по запросу (по подобию getUpdates у телеграм)
Там где вам нужно указать ссылку на вебхук, вы указываете ссылку на наш микросервис. Мы принимаем входящие сообщения, храним их у себя, а вы потом получаете их через http GET запрос
Документация
Применения
Главная цель – сделать единую точку, куда все сервисы будут присылать апдейты, а клиенты забирать все сразу с одного единственного места. Проще выполнить один GET запрос вместо 20 разных.
Изначальное применение найдено в Garry's Mod. Это игра, где разработчики имеют условно полную свободу действий на своих серверах, но поднять веб-сервер является проблемой.
- gm-donate – сервис приема пожертвований для Garry's Mod серверов использует poll.def.pm как способ мгновенной доставки сообщений о платежах Garry's Mod серверам для мгновенного зачисления
- ggram – библиотека для создания Telegram ботов на Garry's Mod серверах может использовать и poll.def.pm как единую точку, куда множество Telegram ботов присылают апдейты.
- Integromat – nocode сервис для автоматизации всего и вся присылает отчеты на poll.def.pm, которые в дальнейшем обрабатываются кодом на Garry's Mod сервере
- Monobank API – украинский мобильный банк, присылает на единственный URL poll.def.pm пуши сразу с десятка аккаунтов, когда по карте проходит какая-то транзакция, а специальный Telegram бот отправляет информацию о транзакции в чат
- GitHub присылает сообщения с коммитами с нескольких репозиториев сразу, а специальный бот делает красивый summary в специальном чате