【问题标题】:Python Telegram Bot works only for me, not for other usersPython Telegram Bot 仅适用于我,不适用于其他用户
【发布时间】:2021-08-06 14:24:01
【问题描述】:

我正在使用 Django 构建 Telegram Bot,我已经将它部署到 Heroku,但没有 Webhooks。为了测试我正在使用轮询,我无法从另一个电报帐户访问机器人。我有几个朋友在那个项目上和我一起工作,我需要他们访问机器人来测试它,但是当他们输入任何内容时,机器人没有回复。我不知道问题是什么,我在互联网上也没有找到任何解决方案,所以我希望有人能在这里帮助我。

def send_search_result(update: Update, context: CallbackContext):
    chat_id = update.message.chat_id
    text = update.message.text

    if not str(text).startswith('/'):

        message = Profile.objects.get_or_create(external_id=chat_id, defaults={'name': update.message.from_user.username})[0]

        Message(profile=message, text=text).save()
    
        update.message.reply_text(text=text)


class Command(BaseCommand):
    help = 'Telegram Bot'

    def handle(self, *args, **options):
        request = Request(con_pool_size=8)

        bot = Bot(request=request, token=settings.TOKEN)

        updater = Updater(bot=bot, use_context=True)

        message_handler = MessageHandler(Filters.text,   send_search_result)
        select_tv_handler = CallbackQueryHandler(callback=select_tv, pass_chat_data=True)

        updater.dispatcher.add_handler(message_handler)
        updater.dispatcher.add_handler(select_tv_handler)

        updater.start_polling()
        updater.idle()   

【问题讨论】:

  • 此代码缩进不当。如果您尝试运行它,它将失败。确保在发布到 SO 之前修复缩进。
  • 我只是复制到这里,格式不正确,编辑了

标签: python bots telegram telegram-bot python-telegram-bot


【解决方案1】:

我已经解决了这个问题。问题是不是每个 Telegram 用户都有用户名,所以当机器人试图在没有用户名的情况下在数据库中创建用户时,它遇到了一个问题,用户名为空。一旦我添加了处理空用户名的逻辑,一切正常

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-15
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 2019-12-24
    • 2018-12-11
    相关资源
    最近更新 更多