ejabberd - 基于外部 REST API 的自定义花名册模块

Posted

技术标签:

【中文标题】ejabberd - 基于外部 REST API 的自定义花名册模块【英文标题】:ejabberd - Custom roster module based on external REST API 【发布时间】:2020-08-12 22:23:47 【问题描述】:

我正在浏览https://docs.ejabberd.im/developer/extending-ejabberd/architecture/,它讨论了通过 REST API 进行的花名册管理。试图找到要使用的模块以及 REST API 应该实现的 API 合约类型。您能否指点我一些讨论如何实现这一目标的博客/教程?

感谢和问候 罗摩

【问题讨论】:

嗨。您在该页面的哪个位置找到了有关通过 REST API 进行名册管理的内容?一旦找到正确的解释,最好在该段落中包含一个链接。 概述的第一段中的最后一句话和第一张图片都在数据模块块下。 “ejabberd 是一个可配置的系统,可以根据客户要求启用或禁用模块。用户不仅可以从普通 PC 连接,还可以从移动设备和网络连接。用户数据可以存储在 Mnesia 内部或其中一个支持 SQL 或 NoSQL 后端。用户可以通过 ReST 接口完全由您自己的后端管理。" 【参考方案1】:

以及 REST API 应该实现什么样的 API 契约。您能否指点我一些讨论如何实现这一目标的博客/教程?

有几个与名册相关的命令:

$ ejabberdctl help --tags roster
Available commands with tag roster:

   add_rosteritem localuser localhost user host nick group subs 
         Add an item to a user's roster (supports ODBC)

   delete_rosteritem localuser localhost user host 
         Delete an item from a user's roster (supports ODBC)

   get_roster user host 
         Get roster of a local user

   process_rosteritems action subs asks users contacts 
         List/delete rosteritems that match filter

   push_alltoall host group 
         Add all the users to all the users of Host in Group

   push_roster file user host 
         Push template roster from file to a user

   push_roster_all file 
         Push template roster from file to all those users

您可以在以下位置找到有关这些命令的更多详细信息:

https://docs.ejabberd.im/developer/ejabberd-api/admin-api/

试图找到要使用的模块

所有这些命令都在 mod_admin_extra 中实现。因此,您只需在 ejabberd.yml 中启用此模块,即可执行命令。

【讨论】:

以上是关于ejabberd - 基于外部 REST API 的自定义花名册模块的主要内容,如果未能解决你的问题,请参考以下文章

ejabberd - 通过API获取mod_mam的历史消息。

如何使用 Admin Rest API 将成员添加到 whatsapp 等多用户聊天订阅

REST API 中的 CAS

MAC OS X 优胜美地上 ejabberd 15.0.4 上的 mod_rest 未启动

翻译eJabberd 外部脚本的使用

ejabberd 中的外部组件是不是有任何吞吐量限制?