Closed alllexey123 closed 2 years ago
На сколько помню, messages.getConversations
никогда не возвращал список бесед для ботов. Вы можете получить ID
беседы в методе public void onMessageNew(MessageNew messageNew)
и потом сохранить в Set
, например:
private final Set<Integer> chatIds = new HashSet<>();
@Override
public void onMessageNew(MessageNew messageNew) {
Integer chatId = messageNew.getMessage().getPeerId();
chatIds.add(chatId);
}
Если вам нужно последовательно выполнить несколько запросов, то вы можете использовать метод execute
:
String code = "var group = API.groups.getById();\n" +
"var chats = API.messages.getConversations();\n" +
"// other method call\n" +
"return chats.count; // return anything";
Execute.ResponseBody responseBody = vk.other.execute().setCode(code).execute();
Документация здесь.
Спасибо за пояснение!
vk.messages.getConversations().execute().getResponse()
не возвращает список бесед, в которых участвует бот. Так же и при использовании .getCount() возвращается количество чатов без учёта бесед. Но если использоватьvk.messages.getConversationsById().setPeerIds(2000000000 + [номер беседы]).execute() .getResponse().getItems().get(0);
то можно получить конкретную беседу, однако это очень неэффективно с точки зрения потраченного времени на обращение к серверу при их большом количестве. Может ли быть добавлена возможность получения всех бесед или хотя-бы только их количества?