【发布时间】:2021-01-31 01:30:16
【问题描述】:
有没有办法通过 API 重新邀请用户到以前被排斥的房间?
- 创建了一个房间
POST /create_room_with_opts
{
"name": "testroompersistent",
"service": "foo",
"host": "bar" ,
"options": {
"title": "Super important meeting",
"description": "This meeting is super important",
"persistent": "true",
"allow_user_invites": "true"
}
}
- 邀请了一位用户
POST /send_direct_invitation
{
"name": "testroompersistent",
"service": "foo",
"password": "",
"reason": "Check this out!",
"users": "user@companyDomain.co.uk"
}
- 用户加入房间
- 管理员将用户隶属关系设置为“弃儿”
POST /set_room_affiliation
{
"name": "testroompersistent",
"service": "foo",
"jid": "userJid",
"affiliation": "outcast"
}
- 再次邀请用户
POST /send_direct_invitation
{
"name": "testroompersistent",
"service": "foo",
"password": "",
"reason": "Check this out!",
"users": "user@companyDomain.co.uk"
}
- 将隶属关系设置为“成员”
POST /set_room_affiliation
{
"name": "testroompersistent",
"service": "foo",
"jid": "userJid",
"affiliation": "member"
}
我尝试在邀请前后设置隶属关系,但无济于事。
【问题讨论】:
-
在使用 XMPP 客户端设置附属关系时,它适用于我。您应该更新您的问题描述并准确指出您为每个步骤发出的命令以及参数。
-
问题已用代码更新
-
我尝试使用您的示例,并使用相同的用户 JID 设置“users”和“jid”字段。第一个邀请是正确的。第二次邀请,由于用户被禁止,不允许用户加入。然后,一旦用户从属关系再次成为“会员”,第三次邀请(您没有显示)正常工作,他可以再次加入房间。我用 ejabberd 20.07 测试过
-
谢谢@Badlop 我回顾了我的代码,我正在使用从 /get_room_occupants 返回的 jid 来设置这个 jid 后面有“/[numbers]”的隶属关系,我认为它不是t 正确设置从属关系。我得到了 0=success 回来,但它一定不能正常工作。谢谢
标签: ejabberd ejabberd-api