Ejabberd 尝试通过 api 订阅用户
Ejabberd trying to subscribe a user through api
我正在尝试使用 Ejabberd API 为测试用户订阅测试室。我确定我只是配置错误,但我似乎找不到问题所在。
我是 运行 Ejabberd 16.09 并尝试使用 mod_http_api
我的配置如下:
hosts:
- "localhost"
- "my.personal.host"
listen:
-
port: 5285
module: ejabberd_http
request_handlers:
"/api": mod_http_api
acl:
admin:
user:
- "@localhost"
modules:
mod_muc:
mam: true
default_room_options:
allow_subscription: true
access:
- allow
access_admin:
- allow: admin
access_create: muc_create
access_persistent: muc_create
mod_muc_admin: {}
mod_http_api:
admin_ip_access: admin_ip_access_rule
api_permissions:
"API used from localhost allows all calls":
- who:
- ip: "127.0.0.1/8"
- what:
- "*"
- "!stop"
- "!start"
access:
admin_ip_access_rule:
admin:
- create_room
- register
- subscribe_room
我确实通过api成功创建了用户test1和房间testroom1。然后我尝试通过 POST 和 curl:
为用户订阅该朗姆酒
curl -X POST -H "Cache-Control: no-cache" -d '{"user":"test1@my.personal.host/something","nick":"test1","room":"testroom1@my.persoal.host","nodes":"urn:xmpp:mucsub:nodes:messages"}' "http://localhost:5285/api/subscribe_room"
然而我得到了这样的回应:
"Subscriptions are not allowed"
那我做错了什么?
哦,我只是快速浏览一下就发现您的设置有很多问题:
- 据我所知,mod_muc 没有名为 'mam'
的选项
- 通话中房间属性persoal拼写错误
- 另外,房间JID不能是"testroom1@my.persoal.host",可能是"testroom1@conference.my.personal.host"
尝试用一个用户创建房间,然后检查它是否配置正确(允许订阅),然后尝试用另一个帐户订阅。这个电话对我有用:
$ ejabberdctl subscribe_room test2@my.personal.host Test2
testroom1@conference.my.personal.host urn:xmpp:mucsub:nodes:messages
我正在尝试使用 Ejabberd API 为测试用户订阅测试室。我确定我只是配置错误,但我似乎找不到问题所在。 我是 运行 Ejabberd 16.09 并尝试使用 mod_http_api
我的配置如下:
hosts:
- "localhost"
- "my.personal.host"
listen:
-
port: 5285
module: ejabberd_http
request_handlers:
"/api": mod_http_api
acl:
admin:
user:
- "@localhost"
modules:
mod_muc:
mam: true
default_room_options:
allow_subscription: true
access:
- allow
access_admin:
- allow: admin
access_create: muc_create
access_persistent: muc_create
mod_muc_admin: {}
mod_http_api:
admin_ip_access: admin_ip_access_rule
api_permissions:
"API used from localhost allows all calls":
- who:
- ip: "127.0.0.1/8"
- what:
- "*"
- "!stop"
- "!start"
access:
admin_ip_access_rule:
admin:
- create_room
- register
- subscribe_room
我确实通过api成功创建了用户test1和房间testroom1。然后我尝试通过 POST 和 curl:
为用户订阅该朗姆酒curl -X POST -H "Cache-Control: no-cache" -d '{"user":"test1@my.personal.host/something","nick":"test1","room":"testroom1@my.persoal.host","nodes":"urn:xmpp:mucsub:nodes:messages"}' "http://localhost:5285/api/subscribe_room"
然而我得到了这样的回应:
"Subscriptions are not allowed"
那我做错了什么?
哦,我只是快速浏览一下就发现您的设置有很多问题:
- 据我所知,mod_muc 没有名为 'mam' 的选项
- 通话中房间属性persoal拼写错误
- 另外,房间JID不能是"testroom1@my.persoal.host",可能是"testroom1@conference.my.personal.host"
尝试用一个用户创建房间,然后检查它是否配置正确(允许订阅),然后尝试用另一个帐户订阅。这个电话对我有用:
$ ejabberdctl subscribe_room test2@my.personal.host Test2 testroom1@conference.my.personal.host urn:xmpp:mucsub:nodes:messages