是否有使用 webhooks 发送节的 ejabberd 模块?

Posted

技术标签:

【中文标题】是否有使用 webhooks 发送节的 ejabberd 模块?【英文标题】:Is there an ejabberd module that sends stanzas using webhooks? 【发布时间】:2019-10-21 03:54:52 【问题描述】:

我希望通过允许人们使用他们的机器人 JID 注册 webhook,让人们可以轻松地为我的 ejabberd 服务器编写机器人。基本上,我希望他们能够使用 HTTP 与我的 ejabberd 服务器交互以发送和接收 XMPP 节,而不必维护持久的 XMPP 连接。例如,机器人可以简单地对我的 ejabberd 服务器进行 HTTP 调用以发送 XMPP 节,然后服务器会通过对已注册的 webhook 进行 HTTP 调用来向机器人发送消息。这将使机器人成为可以轻松水平扩展的简单 HTTP 服务器。

我确实找到了这个模块 (https://github.com/adnam/ejabberd-webhooks),但它似乎并没有完全符合我的要求,而且似乎也没有得到维护。是否有一个维护良好的(可能是官方的)ejabberd 模块可以做到这一点?也许有一个我不知道 ejabberd 实现的 XEP?是否有其他支持此功能的 XMPP 服务器?提前谢谢!

【问题讨论】:

【参考方案1】:

机器人可以简单地对我的 ejabberd 服务器进行 HTTP 调用以发送 XMPP 节,

您可以在 ejabberd 中安装 mod_rest: https://github.com/processone/ejabberd-contrib/tree/master/mod_rest

然后服务器会通过对已注册的 webhook 进行 HTTP 调用来向机器人发送消息。

我不知道有任何简单的模块可以做到这一点。有 Push XEP,请参阅https://xmpp.org/extensions/xep-0357.html,但我认为 ejabberd 社区服务器并没有实现所需的一切,只有商业版。

【讨论】:

不错! mod_rest 解决了一部分问题,所以我只需要另一边的解决方案。我进一步研究了 XEP-0357(和mod_push),它似乎通过流(github.com/processone/ejabberd/issues/…)将 iq 节发送到后端推送通知服务器,并且后端服务器需要使用 XEP 注册为组件-0114。这不是我要找的。也许我会写一个模块来做我想做的事。感谢您的帮助!

以上是关于是否有使用 webhooks 发送节的 ejabberd 模块?的主要内容,如果未能解决你的问题,请参考以下文章

C# WebApi 等待 WebHook 响应

如何在 Ejabbered 中为 MUC 创建一个持久组?

Stripe Webhooks - 我可以发送 200 以外的响应代码吗?

发送解析推送通知的 webhook 后

使用Slack Incoming webhooks发送消息

永远不会发送 PayPal webhook 事件?