问题标签 [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.
node.js - 通过node js app访问ejabberd ReST API
我有一个在 Ubuntu 16.04 上运行的 ejabberd (16.01) 服务器。我有另一个 NodeJs 应用程序在不同的服务器上运行。通过 NodeJs 应用程序,我希望使用https://docs.ejabberd.im/developer/ejabberd-api/提供的 ReST API 添加用户、添加花名册等。
我正在为这个练习做在https://docs.ejabberd.im/developer/ejabberd-api/simple-configuration/给出的简单配置。配置说要添加以下代码段:
这里的问题是,文档没有指定这些配置需要在什么标题下添加?此配置的确切位置完全丢失!
我在文件末尾添加了上述配置。但是,ejabberd 服务器无法识别这些选项。日志说:
下面是我在 ejabberd.yml 文件中添加的额外配置:
我认为文档不是很清楚。有人可以建议我在这里做错了什么吗?或者有没有其他方法可以实现我想要做的事情?
ejabberd - 无法从 ejabberd oauth 获取访问令牌
我正在尝试在 ejabberd 16.01 中配置 oauth。我设法获得了“/oauth/authorize_token”页面,但是当我在表格中填写数据并单击“接受”按钮时,它会重新加载页面并显示错误“此页面无法正常工作。ERR_EMPTY_RESPONSE”。
我试图遵循官方文档。这是我的 ejabberd.yml 文件https://www.dropbox.com/s/wy2ng2kq404jbfw/ejabberd.yml?dl=0
我有以下问题:
- 我在这里做错了什么?
- 如何为 oauth 创建客户端 ID?
- “/oauth/authorize_token”页面的“服务器”字段中有什么内容?
ejabberd - 调用 ejabberd api 时出现 400 错误请求错误
我在调用 ejabberd 的“/api/get_roster”端点时收到 400 错误请求错误。在请求 oauth 令牌时,我将“get_roster”保留在范围内。
我猜是权限有问题。这是我的配置文件:
https://www.dropbox.com/s/his89bx39qhvr1h/ejabberd2.yml?dl=0
我试图遵循官方文档。根据 API 权限指南,我还尝试添加以下属性:
但没有任何变化。我有以下问题:
- 我在这里做错了什么?
- 什么是可能的范围?
erlang - 如何使用 ejabberd 注册模块进行自定义登录
我是 ejabberd 和 erlang 的新手,并创建了一个基本应用程序,首先检查用户是否登录。所以基本上它会检查登录的 mnesia 表并确认这一点。
现在我看到 ejabberd 也有一个用户注册过程,ejabberdctl register username host password
因为我使用 sql 身份验证,所以我看到有一个名为的表users
,其中存储了所有用户和密码。
我想知道这些值如何存储在那里的序列流,并希望使用它将这些值推username and password
送到我的 mnesia 表中以进行登录。
我查看了 ejabberd 开发人员指南,发现 mod_register 处理新用户的注册,但我无法准确追踪其中使用了什么函数来完成所有程序。
我正在使用将信息消息写入日志的方法。有人可以帮我吗?提前致谢。
ejabberd - 使用订阅室的 Ejabberd api
在 ejabberd api 中,我可以填充用户、昵称、房间,但我如何填充节点?有没有例子。谢谢你。
发布 /api/subscribe_room
HTTP/1.1 200 OK [ "aaaaa", "bbbbb" ]
我的例子:
ejabberd - 握手如何在 ejabberd 服务器中进行
我刚刚开始使用 ejabberd 作为消息服务器。现在我已经读到 TCP 连接遵循握手方法来建立连接,我想知道每当任何客户端说 Pidgin 客户端发送连接请求时,ejabberd 是如何遵循握手方法的。
这可能是一个非常基本的问题,但是在努力寻找它之后,我并没有取得太大的成功。
谁能给我解释一下。
rest - ejabberd rest API 没有身份验证,403 Forbidden(错误代码 32)
我试图在没有身份验证的情况下访问 ejabberd rest api,但总是得到403 Forbidden
这个 body 的响应:
我无法在/api/status
端点上获得 OK 响应,这是来自 127.0.0.1 的所有用户都应该能够使用的命令(请参阅api_permissions
ejabberd.yml 中的“公共命令”部分)。
这是请求详细信息(通过 Insomnia REST 客户端):
Ejabberd 版本是 17.04,从下载的 deb 包安装并以用户身份在 Debian 8.8 (jessie) x86_64 上运行ejabberd
。安装后,我只是添加了主机“localhost”,为 localhost 注册了一个新用户“admin”并将其添加到 ACL。
我对 ejabberd.yml 所做的唯一更改:
否则,我可以访问运行良好的 webadmin 界面......
我该怎么做才能获得 200 OK 响应?
javascript - 如何使用 OAuth 令牌与 Stophe.js 中的 ejabberd 连接?
我正在尝试从 strophe.js 连接到 ejabberd 服务器。我已经在 ejabberd 中启用了 OAuth,因此一旦用户通过身份验证,我就可以为用户成功获取 OAuth 令牌。工作流程类似于上面:-
- 当用户注册我的网络应用程序时,我为用户创建 ejabberd 帐户,具有相同的凭据。
- 用户登录我的网络应用
- 成功登录后,我在 OAuth 机制的帮助下将用户登录到 ejabberd。
- OAuth 令牌被传递给客户端
- 现在使用 strophe.js 的客户端与 ejabberd 建立连接以执行所有其他操作,例如获取花名册列表、发送出席信息、发送消息等。
我在步骤 4 中遇到问题,因为在建立连接时我无法找到合适的方式将 OAuth 令牌发送到 ejabberd。顺便说一句,我是 strophe.js 的新手。互联网上的所有示例都使用用户名和密码。我不想再次向用户询问密码,也不想在文件中硬编码。
提前致谢。
xmpp - 收件人在 Ejabberd 中突然断开连接时消息丢失
由于某些网络问题,收件人突然从 INTERNET 断开连接时消息丢失。在这种情况下,我想停止消息丢失。
示例:用户 A 和 B 在线并正在聊天。A向B发送消息。然后突然用户B失去了INTERNET连接,同时用户A仍在向B发送消息。服务器假设B仍然在线,因为不知道B有网络问题。
我正在使用 Ejabberd 16.08 。请提出如何解决此问题的方法。