如何解决Python电报Bot无法识别短信
这里我有一个代码,可以为电报制作一个简单的回声机器人。
from telegram.ext import Updater,CommandHandler,MessageHandler,Filters
import logging
from data.constants import API_TOKEN,LOGGING_FORMAT
logging.basicConfig(format=LOGGING_FORMAT,level=logging.DEBUG)
updater = Updater(token=API_TOKEN)
dispatcher = updater.dispatcher
def start(update,context):
context.bot.send_message(chat_id=update.effective_chat.id,text='Hello,dude.')
def echo(update,text=update.message.text)
start_handler = CommandHandler('start',start)
echo_handler = MessageHandler(Filters.text,echo)
dispatcher.add_handler(start_handler)
dispatcher.add_handler(echo_handler)
if __name__ == '__main__':
updater.start_polling()
updater.idle()
我为此使用了python-telegram-bot
库。
由于某种原因,该机器人只能识别命令,而不能识别纯文本。我的意思是,echo
函数仅回显从/
开始的文本。函数start
可以正常工作。
更有趣的是,我在另一个电报机器人库-aiogram
中遇到了同样的问题。
发疯之后,我写信给python-telegram-bot
支持小组,以寻求解决问题的建议。
运行完我的代码段后,支持人员承认,它对他们来说很好用,并建议我最后一招:在新的bot上尝试。我从@BotFather获得了新的API密钥,尝试了一下,但是现在我在这里。这意味着我的代码仍然无法正常工作。
有一些参考资料可以帮助我们解决问题:
https://python-telegram-bot.readthedocs.io/en/latest/telegram.html https://github.com/python-telegram-bot/python-telegram-bot/wiki/Extensions-–-Your-first-Bot
但是我想,问题出在我的工作环境中,尽管我尝试在不同的新设备上运行代码。
解决方法
我的建议是遵循设置设置处理程序时定义CommandHandler和MessageHandler对象的Python Telegram示例
dp = updater.dispatcher
dp.add_handler(CommandHandler("help",help_command_handler))
dp.add_handler(MessageHandler(Filters.text,main_handler))
,
已解决:机器人不仅要识别命令,还要识别短信,我们需要disable privacy mode
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。