Как изменить текст сообщения в чат-боте ВКонтакте?

Как я могу отправить сообщение "текст для редактирования" в чат с peer_id 2000000013, получить его peer id и waited_message_id, а затем отредактировать сообщение, замеряя время, затраченное на это? – необходимо внести улучшения и дополнения в существующий код.
  • 16 марта 2024 г. 13:39
Ответы на вопрос 2
Для изменения текста сообщения в чат-боте ВКонтакте и измерения времени, затраченного на это действие, можно воспользоваться следующим кодом на языке Python с использованием библиотеки vk_api:

```python
import time
import vk_api

# Авторизация в API VK
vk_session = vk_api.VkApi(token='токен_для_доступа_к_API')
vk = vk_session.get_api()

# Отправка сообщения с текстом "текст для редактирования" в чат с peer_id 2000000013
response = vk.messages.send(peer_id=2000000013, message="текст для редактирования")

# Получение peer_id и waited_message_id отправленного сообщения
peer_id = response['peer_id']
waited_message_id = response['message_id']

# Измерение времени начала редактирования
start_time = time.time()

# Редактирование сообщения
vk.messages.edit(peer_id=peer_id, message="отредактированный текст", message_id=waited_message_id)

# Измерение времени окончания редактирования
end_time = time.time()

# Вычисление времени, затраченного на редактирование
edit_time = end_time - start_time

print(f"Время на редактирование сообщения: {edit_time} секунд")
```

В этом коде мы отправляем сообщение с текстом "текст для редактирования" в чат с указанным peer_id, получаем peer_id и message_id отправленного сообщения, затем редактируем сообщение с новым текстом и измеряем время, затраченное на это действие.

Не забудьте заменить 'токен_для_доступа_к_API' на ваш собственный токен для доступа к API VK.
если я правильно понял вопрос.. 
<code lang="python">
@dp.message_handler(commands=['ping'])
async def handle_ping(message: types.Message):
    try:
        random_id = random.getrandbits(31)
        start_time = time.time()  # Записываем время начала
        await bot.send_message(chat_id=2000000013, text="Cекунду...", random_id=random_id)
        end_time = time.time()  # Записываем время окончания
        response_time = end_time - start_time  # Рассчитываем время ответа
    except Exception as e:
        logging.error(f"An error occurred: {e}")

    try:
        message_to_edit = await bot.send_message(chat_id=message.chat.id, text="текст для редактирования")
        waited_message_id = message_to_edit.message_id
        peer_id = message_to_edit.chat.id

        print("waitedMessageId: " + str(waited_message_id))
        print("peerId: " + str(peer_id))

        await asyncio.sleep(1)

        start_time = time.time()
        await bot.edit_message_text(chat_id=peer_id, message_id=waited_message_id, text='Отредактированное сообщение')
        end_time = time.time()
        response_time1 = end_time - start_time
        await message.answer(f"отправка: {response_time:.2f}ms \nредактирование: {response_time1:.2f}ms")
    except Exception as e:
        logging.error(f"An error occurred: {e}")
        await message.answer("Упс, что-то пошло не так!")

# Запуск бота
if __name__ == '__main__':
    asyncio.run(dp.start_polling())

</code>
Похожие вопросы