@eshran

Не получается удалить сообщение с помощью VK API, что делать?

Всем привет!
Пытался создать функцию удаления сообщения, но по какой-то причине не получается.
Через запрос на сайте всё получается, через код нет
Вот код:
await vk.api.messages.getByConversationMessageId({ peer_id: 2000000000 + message.chatId, conversation_message_ids: message.conversationMessageId, v: '5.80' }).then(async (res) => {
    await vk.api.messages.delete({ message_ids: res.items[0].id, delete_for_all: 1 })
    vk.api.call("messages.removeChatUser", {chat_id: message.chatId, user_id: message.senderId })
    return message_b(message.chatId, ` Отправка ссылок в этой беседе запрещено.`)
})
  • Вопрос задан
  • 2171 просмотр
Решения вопроса 1
aeonixlegit
@aeonixlegit
Back-end разработчик на node.js
Всё зависит от того, кем является необходииый Вам бот, если бот является группой и работает через
добавление группы в чаты - то увы, ничего не поделать, API не хранит айди сообщений для групп, из-за чего со стороны групп нельзя удалить сообщения, единственный способ - это удалять сообщения от имени пользователя или удалять их вручную.

Если же Вы используете бота со стороны страницы пользователя, то попробуйте законсолить то, что выдает API и рассуждать и устранять исходя из этого.

Как я понимаю, в коде используется библиотека vk-io, следовательно адаптировал код под неё.

const otherMessage = (await vk.api.messages.getByConversationMessageId({
  peer_id: 2000000000 + message.chatId,
  conversation_message_ids: message.conversationMessageId,
})).items[0]

console.log(otherMessage)

await Promise.all([
  vk.api.messages.delete({
    message_ids: otherMessage.id,
    delete_for_all: 1,
  }),
  vk.api.messages.removeChatUser({
    chat_id: message.chatId,
    user_id: message.senderId,
  })
])

return message_b(message.chatId, 'Отправка ссылок в этой беседе запрещена.')
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы