问题标签 [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.

0 投票
1 回答
881 浏览

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 文件中添加的额外配置:

我认为文档不是很清楚。有人可以建议我在这里做错了什么吗?或者有没有其他方法可以实现我想要做的事情?

0 投票
1 回答
371 浏览

ejabberd - 无法从 ejabberd oauth 获取访问令牌

我正在尝试在 ejabberd 16.01 中配置 oauth。我设法获得了“/oauth/authorize_token”页面,但是当我在表格中填写数据并单击“接受”按钮时,它会重新加载页面并显示错误“此页面无法正常工作。ERR_EMPTY_RESPONSE”。

ejjaberd oauth 错误页面

我试图遵循官方文档。这是我的 ejabberd.yml 文件https://www.dropbox.com/s/wy2ng2kq404jbfw/ejabberd.yml?dl=0

我有以下问题:

  1. 我在这里做错了什么?
  2. 如何为 oauth 创建客户端 ID?
  3. “/oauth/authorize_token”页面的“服务器”字段中有什么内容?
0 投票
3 回答
1026 浏览

ejabberd - 调用 ejabberd api 时出现 400 错误请求错误

我在调用 ejabberd 的“/api/get_roster”端点时收到 400 错误请求错误。在请求 oauth 令牌时,我将“get_roster”保留在范围内。

ejabberd 中的 400 错误请求错误

我猜是权限有问题。这是我的配置文件:

https://www.dropbox.com/s/his89bx39qhvr1h/ejabberd2.yml?dl=0

我试图遵循官方文档。根据 API 权限指南,我还尝试添加以下属性:

但没有任何变化。我有以下问题:

  1. 我在这里做错了什么?
  2. 什么是可能的范围?
0 投票
1 回答
368 浏览

erlang - 如何使用 ejabberd 注册模块进行自定义登录

我是 ejabberd 和 erlang 的新手,并创建了一个基本应用程序,首先检查用户是否登录。所以基本上它会检查登录的 mnesia 表并确认这一点。

现在我看到 ejabberd 也有一个用户注册过程,ejabberdctl register username host password因为我使用 sql 身份验证,所以我看到有一个名为的表users,其中存储了所有用户和密码。

我想知道这些值如何存储在那里的序列流,并希望使用它将这些值推username and password送到我的 mnesia 表中以进行登录。

我查看了 ejabberd 开发人员指南,发现 mod_register 处理新用户的注册,但我无法准确追踪其中使用了什么函数来完成所有程序。

我正在使用将信息消息写入日志的方法。有人可以帮我吗?提前致谢。

0 投票
1 回答
542 浏览

ejabberd-module - ejabberd api/register(check_account) error 账号无权执行操作

当我在浏览器地址http://127.0.0.1:5280/api/check_account中打开时 出现错误

配置:

0 投票
1 回答
275 浏览

ejabberd - 使用订阅室的 Ejabberd api

在 ejabberd api 中,我可以填充用户、昵称、房间,但我如何填充节点?有没有例子。谢谢你。

发布 /api/subscribe_room

HTTP/1.1 200 OK [ "aaaaa", "bbbbb" ]

我的例子:

0 投票
1 回答
54 浏览

ejabberd - 握手如何在 ejabberd 服务器中进行

我刚刚开始使用 ejabberd 作为消息服务器。现在我已经读到 TCP 连接遵循握手方法来建立连接,我想知道每当任何客户端说 Pidgin 客户端发送连接请求时,ejabberd 是如何遵循握手方法的。

这可能是一个非常基本的问题,但是在努力寻找它之后,我并没有取得太大的成功。

谁能给我解释一下。

0 投票
1 回答
922 浏览

rest - ejabberd rest API 没有身份验证,403 Forbidden(错误代码 32)

我试图在没有身份验证的情况下访问 ejabberd rest api,但总是得到403 Forbidden这个 body 的响应:

我无法在/api/status端点上获得 OK 响应,这是来自 127.0.0.1 的所有用户都应该能够使用的命令(请参阅api_permissionsejabberd.yml 中的“公共命令”部分)。

这是请求详细信息(通过 Insomnia REST 客户端):

Ejabberd 版本是 17.04,从下载的 deb 包安装并以用户身份在 Debian 8.8 (jessie) x86_64 上运行ejabberd。安装后,我只是添加了主机“localhost”,为 localhost 注册了一个新用户“admin”并将其添加到 ACL。

我对 ejabberd.yml 所做的唯一更改:

否则,我可以访问运行良好的 webadmin 界面......
我该怎么做才能获得 200 OK 响应?

0 投票
1 回答
243 浏览

javascript - 如何使用 OAuth 令牌与 Stophe.js 中的 ejabberd 连接?

我正在尝试从 strophe.js 连接到 ejabberd 服务器。我已经在 ejabberd 中启用了 OAuth,因此一旦用户通过身份验证,我就可以为用户成功获取 OAuth 令牌。工作流程类似于上面:-

  1. 当用户注册我的网络应用程序时,我为用户创建 ejabberd 帐户,具有相同的凭据。
  2. 用户登录我的网络应用
  3. 成功登录后,我在 OAuth 机制的帮助下将用户登录到 ejabberd。
  4. OAuth 令牌被传递给客户端
  5. 现在使用 strophe.js 的客户端与 ejabberd 建立连接以执行所有其他操作,例如获取花名册列表、发送出席信息、发送消息等。

我在步骤 4 中遇到问题,因为在建立连接时我无法找到合适的方式将 OAuth 令牌发送到 ejabberd。顺便说一句,我是 strophe.js 的新手。互联网上的所有示例都使用用户名和密码。我不想再次向用户询问密码,也不想在文件中硬编码。

提前致谢。

0 投票
1 回答
192 浏览

xmpp - 收件人在 Ejabberd 中突然断开连接时消息丢失

由于某些网络问题,收件人突然从 INTERNET 断开连接时消息丢失。在这种情况下,我想停止消息丢失。

示例:用户 A 和 B 在线并正在聊天。A向B发送消息。然后突然用户B失去了INTERNET连接,同时用户A仍在向B发送消息。服务器假设B仍然在线,因为不知道B有网络问题。

我正在使用 Ejabberd 16.08 。请提出如何解决此问题的方法。