我在Windows 10(localhost)上使用ejabberd-18.01。我正在尝试使用网络方法通过Postman连接到ejabberd:
POST:localhost:5280 / api / specific_api_method
根据官方API文档(https://docs.ejabberd.im/developer/ejabberd-api/admin-api/),我正在尝试使用带有以下正文的POST方法添加一个名册项目:
POST:localhost:5280 / api / add_rosteritem
{
"localuser": "user1",
"localserver": "mydomain",
"user": "admin",
"server": "mydomain",
"nick": "u1",
"group": "Friends",
"subs": "both"
}
我遇到错误:
{
"status": "error",
"code": 32,
"message": "AccessRules: Account does not have the right to perform the operation."
}
如果有人可以指导我如何进行身份验证以及使用Web API向ejabberd添加新用户或名册项目,我将不胜感激。谢谢。
答案 0 :(得分:1)
在您的yml文件配置文件中进行这些更改
将acl的回送更改为此:
loopback:
ip:
- "127.0.0.0/8"
- "::1/128"
- "::FFFF:127.0.0.1/128"
并使用以下api_permissions:
api_permissions:
"console commands":
from:
- ejabberd_ctl
who: all
what: "*"
"admin access":
who:
- access:
- allow:
- ip: "127.0.0.1/8"
- acl: admin
- oauth:
- scope: "ejabberd:admin"
- access:
- allow:
- ip: "127.0.0.1/8"
- acl: admin
what:
- "*"
- "!stop"
- "!start"
"public commands":
who:
- acl: loopback
what:
- "status"
- "register"
- "connected_users_number"
处关闭。