问题标签 [ejabberd-api]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ejabberd - 如何从 ejabberd 中的 xammp 服务器中删除消息
我是 ejabberd 的新手,
在我们的应用程序中需要删除聊天消息功能。所以我们心中的一个问题
ejabberd 可以使用 restApi.. 或其他方式从 xammp 服务器删除消息吗?
什么是最好的方法。
谢谢,
xmpp - ejabberd BOSH 搜索一无所获
我们正在尝试从 Openfire 切换到 ejabberd XMPP 服务器。我在本地 Windows 10 工作站上安装了带有默认选项的 ejabberd。我设置
我使用 ejabberd ReST API 注册了几个用户。我还为这些用户设置了一些vcard值(我的理解是 vcard 条目是 ejabberd 搜索工作所必需的,对吗?)使用 Postman,我可以确认用户“testfouoles”有 vcard:
除了FN之外,还设置了EMAIL、NICKNAME和NICK电子名片。vcards 似乎区分大小写,所以我设置了小写字母和大写字母变体,因为我不确定搜索使用了哪些变体。我还为N FAMILY和N GIVEN设置了 vcard2值。
对于 Openfire,我们使用带有自定义搜索插件的 CandyJs。现在我们继续将它与 ejabberd 一起使用。 出于测试目的,我设置
这样,具有空输入字段的搜索操作会返回所有将一些信息添加到其 vCard 的用户(根据ejabberd 文档)。
我们的 CandyJS 搜索插件向 ejabberd BOSH 监听器发出以下 POST 请求:
并且 ejabberd 使用唯一注册用户(除了请求用户)的 vcard 数据进行响应:
到目前为止一切正常。现在,如果我提交具有非空搜索条件的搜索请求,无论 allow_return_all: true 还是 false,搜索都找不到任何内容:
在这里,我尝试搜索“UnclassifiedFouoLes”,这是 N FAMILY 的正确值。我试图搜索正确的电子邮件、昵称等 - 没有任何效果。ejabberd 返回一个空结果。
那么,为什么 ejabberd 不通过正确提供的 (?) 匹配 vcard 值的搜索词找到用户?我究竟做错了什么?
我被困住了。我在Jabber Search上找不到任何其他 ejabberd 文档。我不明白标准 vcard 字段名称如何对应于标准 Jabber 搜索字段名称(或者可能是数据表单字段名称?)。
相同的 CandyJS 搜索插件向 Openfire XMPP 服务器发出非常相似的请求并获得结果。唯一的区别是 Openfire 需要一些非标准添加来搜索请求有效负载以指定在哪些字段中搜索:
Openfire 返回结果
条款。它有什么线索吗?
我被困住了,真的很感谢为我指出正确的方向。
更新:
实际上,这里是第一个问题:当我们向 XMPP 服务器发送以下搜索请求时
搜索条件是用“OR”还是“AND”组合?我们是否搜索任何字段值('first'、'last'、'nick'、email'、'fn')等于 'UnclassifiedFouoLes' 或所有字段都相等的用户?
更新 2:
我正在尝试<x xmlns='jabber:x:data' type='submit'>
从 Postman 向 ejabberd 发送一个简单的请求(一个没有 ):
结果始终为空 - 它不返回任何项目。并且有一个用户使用“last”vCard =“UnclassifiedFouoLes”。
为什么?是否需要请求中的“来自”子句?
两个现有的客户可以看到对方并在聊天中交流。但是当我以 client1 身份登录时,抓住 sid 并摆脱它们,将它们插入 Postman 帖子,结果是空的
ejabberd - 如何使用 Smack Client 在 Ejabberd 中注册带内用户,特别是虚拟主机?
我正在使用 Smack 客户端 4.3.1 并希望使用带内注册方法(使用 Smack 的 AccountManager)注册用户。
我可以使用“管理员”XMPP 连接创建新用户,并且用户是在管理员用户所在的域中创建的,比如 user1@ec2-xxxxx.us-west-2.compute.amazonaws.com
我的要求是,我想在另一个虚拟主机中创建用户 - 比如说 user1@example.com 使用相同的“管理员”XMPP 连接。是否可以 ?
我尝试使用具有管理员权限的用户“mnallath1@example.com”进行“带内注册”。它给出“XMPPError:冲突 - 取消”错误
我的代码是:
是否可以使用带内注册在 example.com 中创建 user1?
我的管理员用户
我的虚拟主机
android - 如何在 Ejabberd 服务器上从 android 客户端注册新用户
如何在 Ejabberd Server 上从 android 客户端注册新用户?是否有解决此问题的其他 API?
提前致谢
oauth - Ejabberd Oauth:访问被拒绝
我安装并配置了一个 Ejabberd XMPP 服务器。我测试了从移动应用程序连接到服务器并交换消息。现在我想启用 OAuth(需要将 OAuth 令牌生成集成到我自己的 Node.js REST API 中:登录我的 REST API = 登录我的 DB + Ejabberd OAuth 令牌生成)。我想通过在我的 REST API 登录中生成令牌并在我的 Android/Ios 应用程序中使用此令牌来防止执行 2 次登录调用(我的 REST API + Ejabberd)。
当我打开这个网址时:
我得到一个登录表单,在使用有效凭据填写表单后,我被重定向到此 url:
响应为空:ERR_EMPTY_RESPONSE
ejabberd - ejabberd: AccessRules: 账户无权执行该操作
我正在尝试遵循API 权限 | ejabberd 文档和配置 ejabberd | ejabberd 文档。
然而在尝试注册用户时:
我得到以下信息ejabberd.log
:
ejabberd.yml
' acl
&api_permissions
块:
&
请指教。
ejabberd - 未提供主机服务 (ejabberd)
我正在使用开箱即用的ejabberd/ecs - Docker Hub并且我尝试运行curl
命令(从我自己的容器)来注册用户,但收到以下消息:
带输出的实际curl
命令:
就 Docker 而言,我的容器app
和ejabberd
容器都在同一个网络中。
请指教。
ejabberd.yml以防万一。
mysql - Ejabberd 用户身份验证失败,使用 mysql
我已经使用下面的参考链接在我的本地系统中安装了 ejabberd 和 mysql。我正在使用 php 进行服务器端使用。
一切正常。
我正在使用这个 PHP 脚本https://github.com/cweiske/xmpphp/
但问题是当我从 ejabberd 网络管理员添加用户时,它非常适合发送消息。但是当我直接在mysql用户表中添加用户时,两个用户都以相同的格式保存在用户表中,但是当我使用直接添加的用户名发送消息时它不起作用。
在终端中出现以下错误
帮助我 ejabberd 如何与 mysql 用户一起工作?Ejabberd 将用户数据保存在其他任何地方吗?
ejabberd - 如何将我的自定义身份验证脚本连接到 ejabberd?
我已经搜索了我能想到的所有地方。我知道如何创建我的自定义身份验证脚本(我正在使用 Python),但我只是不知道如何将它连接到 ejabberd 服务器。它必须在一个特殊的位置吗?特殊名称?我是否以某种方式从 ejabberd.yml 指向它?
是什么触发 ejabberd 调用我的脚本而不是它自己的内部身份验证代码?
ejabberd - 为什么 mysql 表“muc_room”存储不持久空间?
我的 ejabberd 服务器使用 mysql DB 作为外部存储,我使用ejabberd API 的/create_room_with_opts方法创建带有选项的房间:{name: "persistent", value: "false"}。一切正常的文件和创建的房间看起来实际上是临时的——当最后一个参与者离开时,它们会自动关闭。
但我有一个问题 - 创建的非持久性房间保存在表muc_room中,尽管它必须只包含持久性房间(https://docs.ejabberd.im/developer/sql-schema/#table-muc-room)
例如,我可以在muc_room表中使用以下选项的空间:
主要问题是我在重新启动我的 ejabberd 服务器时收到了重新创建的所有非持久性房间。
问题:1)为什么不使用 ejabberd API 创建的持久化房间存储在muc_room表中(可能是一些错误)?2)如何避免在重新启动 ejabberd 服务器时重新创建这些房间(除了从数据库中删除它:手动或使用 mysql 事件)?