Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xmpp 如何在MongooseIM中使用服务器端的webhook创建bot用户?_Xmpp_Ejabberd_Mongoose Im - Fatal编程技术网

Xmpp 如何在MongooseIM中使用服务器端的webhook创建bot用户?

Xmpp 如何在MongooseIM中使用服务器端的webhook创建bot用户?,xmpp,ejabberd,mongoose-im,Xmpp,Ejabberd,Mongoose Im,这就是我想要的 始终在线显示状态的用户(bot) 当用户收到消息时,我将点击与该用户关联的webhook webhook请求的响应将作为回复发送给发件人 该用户将能够截获任何消息(比如亵渎罪) 该用户将能够向任何人发送消息(比如广播) 该用户将作为默认用户进入每个用户名册(如skype的echo bot) 我似乎找不到任何关于如何实现这一点的资源。我已经找到了一种在openfire中拦截传入数据包的方法,但在MongooseIM中我看不到任何简单的方法。我还没有开始深入研究源代码,仍然在寻找一种

这就是我想要的

  • 始终在线显示状态
    的用户(bot)
  • 当用户收到消息时,我将点击与该用户关联的webhook
  • webhook请求的响应将作为回复发送给发件人
  • 该用户将能够截获任何消息(比如亵渎罪)
  • 该用户将能够向任何人发送消息(比如广播)
  • 该用户将作为默认用户进入每个用户名册(如skype的echo bot)

  • 我似乎找不到任何关于如何实现这一点的资源。我已经找到了一种在openfire中拦截传入数据包的方法,但在MongooseIM中我看不到任何简单的方法。我还没有开始深入研究源代码,仍然在寻找一种方法来做到这一点,而不必接触源代码并将自己锁定到特定版本的MongooseIM。

    免责声明:我是MongooseIM核心团队的成员


    有多种方法可以实现这一点。实现这一点的最简单方法取决于您对Erlang的熟悉程度,MongooseIM是用Erlang编写的编程语言

  • 您不需要使用任何Erlang,但需要一些Erlang来控制哪些消息被转发到HTTP服务或进行更复杂的设置。要发送回消息,您需要使用或作为普通的XMPP客户机连接到服务器,使用许多可用的XMPP库中的一个。这可能是实现目标的最佳方法
  • 您可以跳过使用事件推送程序,只需将bot连接为用任何语言编写的XMPP客户端。bot可能包含您的业务逻辑,或者可以将它获得的消息转发给HTTP服务
  • 如果您喜欢在Erlang中工作,那么可以调用扩展服务器的机制。这需要在Erlang中编写代码并从源代码构建,但不一定需要修改上游MongooseIM代码
  • 您可以使用,它允许扩展XMPP服务器的功能,但可以将其构造为多个服务。组件可以用您想要的任何技术编写,最流行的XMPP库应该支持组件协议

  • 根据您在上面列表中的选择以及您喜欢的语言和环境,您可能需要选择一个XMPP库来使用。iOS(ObjC和Swift)、Android(Java和Kotlin)、Python、JavaScript、C都有XMPP LIB,甚至还有一些新出现的Rust、Dart等版本。

    如果对您有帮助的话,我非常感谢您的支持或接受答案;)当然,我还在研究这些解决方案。等待周末。我喜欢第一种方法。第六点你有什么简单的解决办法吗?我希望每个用户在默认情况下在他们的花名册中添加一个用户。
    mod\u admin\u extra
    可以使用
    pushlotster
    命令来完成,对吗?是的,您可以使用
    push\u花名册
    命令来实现这一点。