XMPPFramework - ошибка авторизации при удалении зарегистрированной учетной записи пользователя

Я хочу удалить пользователя Openfire, который в данный момент подключен с помощью XMPP.

Я использую приведенный ниже код для удаления пользователя:

- (void)DeleteAccountFromOpenfire
{
    NSXMLElement *query = [NSXMLElement elementWithName:@"query" xmlns:@"'jabber:iq:register'"];
    [query addChild:[NSXMLElement elementWithName:@"remove"]];
    XMPPIQ *iq = [XMPPIQ iqWithType:@"set" elementID:@"unreg1"];
    [iq addChild:query];
    [[self xmppStream] sendElement:iq];
}

Но я получаю ошибку not-authorized от сервера. Как я мог этого избежать?


person TasZ    schedule 21.07.2014    source источник
comment
Какой ответ вы получаете от сервера?   -  person legoscia    schedule 21.07.2014
comment
@legoscia, это iq, который я получаю   -  person Hemant    schedule 21.07.2014
comment
@Hemant, это iq, который вы отправляете. Что вы получите в ответ от сервера?   -  person legoscia    schedule 21.07.2014
comment
@legoscia ‹iq xmlns=jabber:client type=get ​​id=789-4859712 from=grovemultiauth.com to=grovemultiauth.com/d4e6899›‹ping xmlns=urn:xmpp:ping›‹/ping›‹/iq› Тогда я я получаю неавторизованную ошибку ..   -  person Hemant    schedule 21.07.2014
comment
Верно, not-authorized, вероятно, является критическим моментом здесь. Я сам не знаком с Openfire, но кто-то более знающий, вероятно, укажет, как настроить сервер, чтобы разрешить удаление учетной записи.   -  person legoscia    schedule 21.07.2014


Ответы (1)


Ниже приведено решение по удалению зарегистрированного пользователя из учетной записи openfire.

NSXMLElement *query = [NSXMLElement elementWithName:@"query" xmlns:@"jabber:iq:register"];
[query addChild:[NSXMLElement elementWithName:@"remove"]];

NSXMLElement *iq = [NSXMLElement elementWithName:@"iq"];
[iq addAttributeWithName:@"type" stringValue:@"set"];
[iq addAttributeWithName:@"id" stringValue:@"unreg1"];
[iq addChild:query];
[[self xmppStream] sendElement:iq];
person TasZ    schedule 26.07.2014