Перейти к основному содержимому

Webhook без веб сервера

· 2 мин. чтения

Если развернуть веб сервер с вебхуком возможности нет, а принимать сообщения от какого-то сервиса (например Telegram) нужно, мы используем polling. Это когда мы сами спрашиваем у сервиса, нет ли у него для нас новостей. В случае с Telegram, это происходит через запрос getUpdates.

Но что, если сервис не имеет своего поллинг сервера и предлагает лишь доставку апдейтов на webhook, как например GitHub? Или есть ряд других проблем, которые перечислены в разделе "Применения"?

Решение

poll.gmod.app — микросервис, который может выступить в качестве вебхука, а сам отдавать обновления по запросу (по подобию getUpdates у телеграм)

Там где вам нужно указать ссылку на вебхук, вы указываете ссылку на наш микросервис. Мы принимаем входящие сообщения, храним их у себя, а вы потом получаете их через http GET запрос

Документация

poll.gmod.app документация

Применения

Главная цель – сделать единую точку, куда все сервисы будут присылать апдейты, а клиенты забирать все сразу с одного единственного места. Проще выполнить один GET запрос вместо 20 разных.

Изначальное применение найдено в Garry's Mod. Это игра, где разработчики имеют условно полную свободу действий на своих серверах, но поднять веб-сервер является проблемой.

  • gm-donate – сервис приема пожертвований для Garry's Mod серверов использует poll.gmod.app как способ мгновенной доставки сообщений о платежах Garry's Mod серверам для мгновенного зачисления
  • ggram – библиотека для создания Telegram ботов на Garry's Mod серверах может использовать и poll.gmod.app как единую точку, куда множество Telegram ботов присылают апдейты.
  • Integromat – nocode сервис для автоматизации всего и вся присылает отчеты на poll.gmod.app, которые в дальнейшем обрабатываются кодом на Garry's Mod сервере
  • Monobank API – украинский мобильный банк, присылает на единственный URL poll.gmod.app пуши сразу с десятка аккаунтов, когда по карте проходит какая-то транзакция, а специальный Telegram бот отправляет информацию о транзакции в чат
  • GitHub присылает сообщения с коммитами с нескольких репозиториев сразу, а специальный бот делает красивый summary в специальном чате