作为一名占有者/成员,我需要了解所有"成员"在ejabberd-14.x
的房间里我关注http://xmpp.org/extensions/xep-0045.html#getmemberlist
我被禁止(401)跟随stanze - 需要管理员权限
<iq from='crone1@shakespeare.lit/desktop'
id='member3'
to='coven@chat.shakespeare.lit'
type='get'>
<query xmlns='http://jabber.org/protocol/muc#admin'>
<item affiliation='member'/>
</query>
</iq>
如果我改变
<query xmlns='http://jabber.org/protocol/muc#admin'>
从管理员到用户名称空间,然后我得到状态代码501 - 功能未实现
您是否知道如何让房间成员成为居住者或成员?
我不是此用例的管理员/主持人。
XEP-0045确实说:
注意:服务应该也应该将成员列表返回给任何占用者 仅限会员的房间;即,它不应该生成错误 当会议室中的成员请求成员列表时。这个功能 可以帮助客户显示所有现有成员,即使有些成员 他们不在房间里,例如帮助成员确定是否另一个 应该邀请用户。服务应该也允许任何成员 即使还不是占用者,也要检索成员列表。
答案 0 :(得分:0)
您需要自己至少成为会员才能访问联盟列表。无论您目前是否是占用者(即在房间内)都无关紧要。
请注意,从属关系(例如“成员”)是需要明确授予人员的持久性设置,否则默认为“无”。在正常的无限制房间this setting doesn't have any other effect than allowing you to retrieve the member list。成员列表与占用者列表无关。
(如果您只想知道当前在会议室中的人员,则应发送包含名称空间http://jabber.org/protocol/disco#items
而非muc#admin
的查询。)
示例(刚刚在我的ejabberd服务器上试过)。尝试使用非附属帐户查询列表:
<iq from='crone1@shakespeare.lit/desktop'
id='member3'
to='coven@chat.shakespeare.lit'
type='get'>
<query xmlns='http://jabber.org/protocol/muc#admin'>
<item affiliation='member'/>
</query>
</iq>
<iq from='coven@chat.shakespeare.lit'
to='crone1@shakespeare.lit/desktop'
type='error'
id='member3'>
<query xmlns='http://jabber.org/protocol/muc#admin'>
<item affiliation='member'/>
</query>
<error code='403' type='auth'>
<forbidden/>
<text>Administrator privileges required</text>
</error>
</iq>
使用特权(房间所有者)帐户授予该第一个帐户成员权限:
<iq from='admin@shakespeare.lit/desktop'
type='set'
to='coven@chat.shakespeare.lit'
id='member4'>
<query xmlns='http://jabber.org/protocol/muc#admin'>
<item jid='crone1@shakespeare.lit' affiliation='member'/>
</query>
</iq>
<iq to='admin@shakespeare.lit/desktop'
from='coven@chat.shakespeare.lit'
type='result' id='member4'/>
再试一次:
<iq from='crone1@shakespeare.lit/desktop'
type='get'
to='coven@chat.shakespeare.lit'
id='member5'>
<query xmlns='http://jabber.org/protocol/muc#admin'>
<item affiliation='member'/>
</query>
</iq>
<iq to='crone1@shakespeare.lit/desktop'
from='coven@chat.shakespeare.lit'
type='result'
id='member5'>
<query xmlns='http://jabber.org/protocol/muc#admin'>
<item jid='crone1@shakespeare.lit' affiliation='member'/>
</query>
</iq>