1

チャット Web アプリケーションにブロック ユーザーのリストをブロック、ブロック解除、取得する機能を追加したいと考えていました。

_enableCarbons()このために、次の関数の下にブロックリストを取得する新しい関数を追加して、quickblox.js を変更しました。

getBlockList: function() {
        iq = $iq({
        //from: connection.jid,    //Also tried to sent this but same response was received
        type: 'get',
        id: connection.getUniqueId('sendIQ')
    }).c('blocklist', {
        xmlns: "urn:xmpp:blocking"
    });

    connection.sendIQ(iq, function(stanza) {
      console.log("response of getBlockList",stanza);
      callback();
    });
}

上記の関数を呼び出すと、以下の xml がサーバーに送信されます。

<iq type="get" id="3:sendIQ" xmlns="jabber:client">
    <blocklist xmlns="urn:xmpp:blocking"></blocklist>
</iq>

応答として以下の xml を送信します。

<iq id="3:sendIQ" to="3056272-18345@chat.quickblox.com/1220770403-quickblox-228541" type="error" xmlns="jabber:client">
    <blocklist xmlns="urn:xmpp:blocking"></blocklist>
    <error type="cancel" code="501">
        <feature-not-implemented xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></feature-not-implemented>
        <text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" xml:lang="en">Feature not supported yet.</text>
    </error>
</iq>

他にも何か送信する必要があるかどうか、または何か間違っているかどうかをお知らせください。http://xmpp.org/extensions/xep-0191.htmlリンクに従って、ブロック リストを取得しました

また、XEP-0016 に従い、プライバシー リストにユーザーを追加するためのコードを次のように変更しました。

block : function(userId,callback) {
iq = $iq({
  from: connection.jid,
  type: 'set',
  id: connection.getUniqueId('sendIQ')
}).c('query', {
  xmlns: "jabber:iq:privacy"
}).c('list',{
  name : 'public'
}).c('item',{
  type : 'jid',
  value : this.helpers.getUserJid(userId, this.service.getSession().application_id),
  action : 'deny',
  order : new Date().getTime()
});

connection.sendIQ(iq, function(stanza) {
  console.log("response of getBlockList",stanza);
  callback(stanza);
});
}

これは XML の下に送信します。

<iq from="userid-appId@chat.quickblox.com/1220770403-quickblox-233195" type="set" id="3:sendIQ" xmlns="jabber:client">
<query xmlns="jabber:iq:privacy">
    <list name="public">
        <item type="jid" value="idOfUserToBlock-appId@chat.quickblox.com" action="deny" order="1444815897276"></item>
    </list>
</query>
</iq>

サーバーから得た応答は次のとおりです。

<iq id="3:sendIQ" to="chatID-appID@chat.quickblox.com/1220770403-quickblox-233195" type="error" xmlns="jabber:client">
<query xmlns="jabber:iq:privacy">
    <list name="public">
        <item value="blockChatID-appID@chat.quickblox.com" action="deny" order="1444815897276" type="jid"></item>
    </list>
</query>
<error type="modify" code="400">
    <bad-request xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></bad-request>
</error>

ここにコードを入力してください

4

2 に答える 2

0

プライバシー リスト API は、1.17.1 バージョンの QuickBlox Javascript SDK から使用できます。

ここにもAPIドキュメントがあります

http://quickblox.com/developers/Web_XMPP_Chat_Sample#Privacy_lists

于 2015-12-07T10:28:49.530 に答える
0

QuickBlox は、ブロック機能に XEP-0016 プライバシー リストを使用します。

http://xmpp.org/extensions/xep-0016.html

0191の代わりにフォローしてください

于 2015-10-14T09:36:41.187 に答える