VKBottle发送新消息后删除旧消息问题求助
解决VKBottle发送消息后无法删除消息的问题
你的代码核心问题是异步方法调用缺少await关键字,另外建议保留异常排查信息,以下是修正方案:
修正后的代码
new_msg = await message.answer(attachment=photo) await asyncio.sleep(2) try: # 给异步的delete()方法添加await await new_msg.delete() except Exception as e: # 替换pass为异常打印,方便排查问题 print(f"删除消息失败: {str(e)}") await message.answer(response['choices'][0]['text'])
关键注意点
- VKBottle中几乎所有操作方法都是异步的,
delete()也不例外,必须用await才能触发执行,否则方法只会被声明而不会实际运行。 - 检查机器人权限:如果是群聊场景,需要将机器人设置为群管理员并开启「删除消息」权限;私聊场景下确保对方未限制机器人的操作权限。
- 不要直接忽略异常,打印错误信息能帮你快速定位是权限不足、消息已被删除,还是其他API调用问题。
内容的提问来源于stack exchange,提问作者Mr. Bait
相关产品推荐
相关产品推荐

