MessagesCategory.DeleteAsync
Перед созданием нового бага, пожалуйста попробуйте использовать последнюю версию из nuget. Если проблема продолжает воспроизводиться, то для создания нового бага отразите краткую суть проблемы в заголовке и заполните следующие пункты:
- Target для .NET используемый в проекте: (Официально поддерживаем , .net 4.5, NETStandard2.0) (поставьте 'x' в квадратных скобках)
- [ ] .net 4.5
- [ ] NETStandard2.0
- [x] другое. Указать строкой ниже. - [x] .NET 7
-
Класс и метод в котором возникла проблема: Класс: MessagesCategory , Метод: public Task<IDictionary<ulong, bool>> DeleteAsync( IEnumerable
messageIds, bool? spam = null, ulong? groupId = null, bool? deleteForAll = null) -
Пример кода для воспроизведения проблемы, пожалуйста указавыйте конкретные значения параметров запроса:
!!!на 1 скрине id = 56, но в ответе приходит ["41" : 1], наверное в этом проблема
Параметры Delete()Х
IEnumerable<ulong> messageIds = [56],
bool? spam = null,
ulong? groupId = 223856532
bool? deleteForAll = true
- JSON ответа. Для удобства сбора этих данных подключите логи (https://github.com/vknet/vk/wiki/Logging):
ответ такой
Проверил на последней версии нугета, не работает. На данный момент версия 1.62.0.
-
Если в примере не указаны конкретные значения параметров запроса укажите их здесь:
-
PS Если у вас появился вопрос по работе функциональности, то обратитесь за помощью в
, или напишите мне, не нужно плодить задачи типа как работает ф-я X, в противном случае буду закрывать без объяснения причины. После разбора проблемы будем дополнять документацию более полными примерами
Проблему я определил ID который возвращает ВК при выполнении это внутренний ID сообщения в пределах диалога (cmids вроде который), в котором было удаление, а передаете вы ID сообщения в пределах своего аккаунта, если я правильно понимаю, поэтому при поиске в ответе его не находит и результат, соответственно, false
В моем понимании глобальные ID сообщений в пределах аккаунта это неправильно и видимо ВК решили так же и требуют использовать peerId + cmid что вполне логичку
Я короче измению методы, полагаю надо полностью убирать старые и менять их на новые, но единственный вариант который я вижу для удаление по глобальному ID это возвращать результат в виде словаря <long, bool> с cmids и чтобы проверить что сообщения были удалены нужно отдельно иметь их id в пределах удаляемого диалога и если ты его не знаешь то нужно получить его, ну или просто доверять что сообщение было удалено
Короче прям сложный вопрос как бы с этим проблему решить, создал тикет, но когда исправлено будет и будет ли вообще даже аллах не знает