我正在尝试远程与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/admin
访问我的admin api,由于某种原因,我尝试的所有命令都成功进行了身份验证,但我不断收到错误作为邮递员的回复:
"command_unknown"
我必须错误配置一些东西,但我真的不确定是什么。我对YML和CFG文件之间的设置重叠感到有点困惑。