我需要从 MUC 内的所有用户和用户本身(“我”)中获取 XMPP 用户组。我想用它们在 candy xmpp 客户端中设置一些权限。
这个问题没有插件。在 candy.min.js 里面我发现了这个函数:
Candy.Core.Contact.prototype.getGroups = function() {
return this.data.groups; };
我在文档中没有找到任何关于它的注释,也没有在其他代码/插件中找到任何相关性。所以也许,这个功能甚至不起作用。
我尝试编写自己的插件。但我对 JS 的了解并不深。调用 getGroups() 函数对我不起作用。
我可以使用 openfire(xmpp 服务器)中的 REST API 读取用户组数据。因此,权限或数据没有问题。通常可以在此配置中获取用户组数据。但我真的很想在糖果聊天插件中获得一个更清洁的解决方案。
Candy 中有一些核心功能,允许通过 strophe.js 发送查询。我还不明白。但我认为,有一种方法可以使用这些来获取用户组。他们看起来像这个例子来设置用户密码。:
var pwChangeRequest = $iq({
type: 'set',
to: 'shakespeare.lit'
})
.c('query', {xmlns: 'jabber:iq:register'})
.c('username').t('bill').up()
.c('password').t('newpass');
Candy.Core.getConnection().sendIQ(
pwChangeRequest,
function () {
console.log("Password change was successful.")
},
function (responseStanza) {
console.log("Password change failed.");
console.log(responseStanza);
}
);
那么,我需要如何更改此代码段以请求 XMPP 用户组?
我也想 RTFM :) 但我没有找到任何解释 CANDY <-> Candy Plugin <-> prototype / strophe /stanza <-> XMPP (openfire) 通信的东西。有什么要读的吗?