quickblox - 删除私人(1对1)聊天

时间:2014-08-08 07:08:55

标签: ios objective-c quickblox

大家好,首先抱歉我的英语。其次,提前感谢您的答案。我已经能够使用以下方法检索当前的用户对话框列表:

[QBChat dialogsWithExtendedRequest:nil delegate:self];

if ([result isKindOfClass:[QBDialogsPagedResult class]] && result.success) {


    QBDialogsPagedResult *pagedResult = (QBDialogsPagedResult *)result;

    NSArray *dials = pagedResult.dialogs;
    self.dialogs = [dials mutableCopy];
    ...
}

我已经能够修改type == QBChatDialogTypeGroup的对话框,以便使用以下方法从中删除已提交的用户ID:

QBChatDialog *selectedDialog = self.dialogs[sender.tag];

if (selectedDialog.type == QBChatDialogTypeGroup) {

    NSMutableDictionary *extendedRequest = [NSMutableDictionary new];
    extendedRequest[@"pull_all[occupants_ids][]"] = [NSString stringWithFormat:@"%ld",(unsigned long)self.logedUser.ID];
    [QBChat updateDialogWithID:selectedDialog.ID extendedRequest:extendedRequest delegate:self];
}

这使得下次我向QuickBlox请求对话列表时,所有这些除了刚刚更新的#34;列出来。问题是,如果我使用相同的" extendedRequest" selectDialog.type == QBChatDialogTypePrivate时的请求我总是得到QuickBlox的错误权限。无论如何,当我从QuickBlox请求对话框列表时,使用type == QBChatDialogTypePrivate的对话框不会再次列出??? 我希望一切都清楚。 Thx提前=)

2 个答案:

答案 0 :(得分:2)

您不能将 pull_all [occupants_ids] [] push_all [occupants_ids] [] 用于私人对话,仅适用于群组

私人对话中有2个用户 - 你和你的对手。并且您无法删除或添加任何其他人,因为它是私人聊天,而不是群聊

答案 1 :(得分:0)

要删除聊天对话框,

[QBChat deleteDialogWithID:dialogID delegate:self];

处理委托(符合QBActionStatusDelegate

- (void)completedWithResult:(QBResult *)result{ {
    if([result isKindOfClass:[QBChatDialogResult class]]) {
        QBChatDialogResult *qbDialog = (QBChatDialogResult *)result;
        if(qbDialog.success) {
            NSLog(@"Dialog has been deleted!");
        } else {
            NSLog(@"Uh no, something wrong!");
        }
    }
}