簡體   English   中英

Python Telegram Bot 僅適用於我,不適用於其他用戶

[英]Python Telegram Bot works only for me, not for other users

我正在使用 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()   

我已經解決了這個問題。 問題是不是每個 Telegram 用戶都有用戶名,所以當機器人試圖在沒有用戶名的情況下在數據庫中創建用戶時,它遇到了一個問題,用戶名是 null。 一旦我添加了處理空用戶名的邏輯,一切正常

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM