我正在尝试与 ejabberdctl 远程交互,以便我的 nodeJS 客户端可以使用带有ejabberd REST API的 mod_restful 插件将命令发送到远程 jabber 服务器。我可以使用邮递员发送请求进行测试,并在 POST 请求的标头中发送管理员用户和密码。我编辑了我的 ejabberd.yml 以包括:
api_permissions:
"API used from localhost allows all calls":
- who:
- ip: "127.0.0.1/8"
- what:
- "*"
commands_admin_access:
- allow:
- user: "admin@localhost"
commands:
- "*"
- create_room: "*"
- register: "*"
# Tokens are valid for a year as default:
auth_expire: 31536000
oauth_access: all
我的 ejabberd.cfg 配置文件包括:
{mod_restful, [
{api,
[
{["admin"], mod_restful_admin, [
{key, "secret"},
{allowed_commands, [register, unregister,create_room]}
]},
{["register"], mod_restful_register, [{key, "secret"}]}
]}
]}
我正在访问我的管理 api,/api/admin
由于某种原因,我尝试的所有命令都成功验证,但我不断收到错误作为邮递员的响应:
"command_unknown"
我一定只是错误地配置了一些东西,但我真的不确定是什么。我对 YML 和 CFG 文件之间的设置重叠感到有些困惑。