Python Telebot无法与其他用户一起使用

尼基塔

我也是开发人员和python的新手。我试图使用Telebot编写一个简单的电报机器人。该方案是在用户单击按钮执行某些逻辑时向用户显示嵌入式键盘。在下面的示例中,我剪切了代码,但显示了问题。问题是:当第一个用户开始工作时,他会得到正确的通知和所有通知。但是,当第二个用户开始使用bot时,他将获得正确的键盘,但通知将发送给第一个用户。

这是一个代码示例:

import telebot
import datetime

bot = telebot.TeleBot(insert_token_here)

keyboard1 = telebot.types.ReplyKeyboardMarkup(True)
keyboard1.row('Choose date', 'dont push it')

@bot.message_handler(commands=['start'])
def start_message(message):
    bot.send_message(message.chat.id, 'Welcome', reply_markup=keyboard1)


def dates_inline():
    current_date = datetime.datetime.today()

    # Inline keyboard
    keyboard_dates = telebot.types.InlineKeyboardMarkup()
    key_now = telebot.types.InlineKeyboardButton(text=current_date.strftime('%d.%m.%Y') + ' (Today)',
                                                 callback_data=current_date.strftime('%Y-%m-%d'))
    keyboard_dates.add(key_now)

    return keyboard_dates
@bot.message_handler(content_types=['text'])
def choose_message(message):

    if message.text == "Choose date":

        bot.send_message(message.chat.id, 'Choose date:', reply_markup=dates_inline())

        @bot.callback_query_handler(func=lambda call: True)
        def choose_date(call):
            dt = call.data
            print('chose_date dt: %s' % dt)
            bot.send_message(message.chat.id, 'All done')
        print('end')
    else:
        print('smth else')



def main():

    bot.polling(none_stop=True)


if __name__ == '__main__':
    main()
吉约翰

我也面临类似的问题。

  1. 不要在另一个内部创建处理程序/装饰器。它不是那样工作的。我也是python的新手,所以我不知道确切的原因。我也是从我的错误中学到的。
  2. 不要将消息发送回message.chat.id。将其发送给call.from_user.id,以便它将始终将答复发送回呼叫来自的用户。
@bot.message_handler(content_types=['text'])
def choose_message(message):

    if message.text == "Choose date":
        bot.send_message(message.chat.id, 'Choose date:', reply_markup=dates_inline())
    else:
        print('smth else')


@bot.callback_query_handler(func=lambda call: True)
    def choose_date(call):
        dt = call.data
        print('chose_date dt: %s' % dt)
        bot.send_message(call.from_user.id, 'All done')
        print('end')
    

我现在也在开发机器人,这对我来说很好。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

与其他用户一起推送到GitHub存储库

来自分类Dev

我可以使用YoutubeAPI与其他用户一起创建直播活动吗

来自分类Dev

将地图与其他参数一起使用-Python

来自分类Dev

无法检测到与其他用户一起运行的应用程序(通过切换用户)

来自分类Dev

无法检测到与其他用户一起运行的应用程序(通过切换用户)

来自分类Dev

“ doas”允许用户与其他用户一起运行命令并设置环境变量

来自分类Dev

如何在Python中与其他字符一起使用另一种语言?

来自分类Dev

在笔记本目录中将函数与其他python文件中的变量一起使用

来自分类Dev

在Python2.7中,如何使用主脚本和其他用户定义函数中的变量

来自分类Dev

如何在python中创建具有其他用户可以写入的权限的文件

来自分类Dev

以其他用户身份启动python后获取Winlows登录名

来自分类Dev

Windows 7中的“组/其他用户可写Python-Eggs”错误

来自分类Dev

与其他用户一起在Exchange服务器日历上创建约会,而无需模拟(EWS)

来自分类Dev

其他用户看不到Ruby与rbenv一起安装

来自分类Dev

如何允许用户修改其他用户详细信息而没有超级用户身份?(Django / Python)

来自分类Dev

分发大型,复杂的Python项目的最佳方法是,无论使用什么操作系统,它们都可以为其他用户完全安装?

来自分类Dev

分发大型,复杂的Python项目的最佳方法是,无论使用什么操作系统,它们都可以为其他用户完全安装?

来自分类Dev

在与其他用户第一次对话后,Slack 机器人无法进行通信

来自分类Dev

用户与其他用户的关系

来自分类Dev

使用与其他用户完全不同的工作区创建新用户

来自分类Dev

如何与其他用户共享目录?

来自分类Dev

Firestore与其他用户共享数据

来自分类Dev

Github与其他用户提交

来自分类Dev

如何与其他用户共享目录?

来自分类Dev

与其他用户共享 Nvim 配置?

来自分类Dev

在 TFS 中显示与其他用户的差异

来自分类Dev

适用于AndroidStudio / Eclipse的Fabric-无法与其他用户登录

来自分类Dev

无法通过HTML5 Geolocation和Android与其他用户获取位置

来自分类Dev

我不能以 root 身份 su 或 sudo -i,也不能以 root 身份 ssh。但他们都可以与其他用户一起工作

Related 相关文章

  1. 1

    与其他用户一起推送到GitHub存储库

  2. 2

    我可以使用YoutubeAPI与其他用户一起创建直播活动吗

  3. 3

    将地图与其他参数一起使用-Python

  4. 4

    无法检测到与其他用户一起运行的应用程序(通过切换用户)

  5. 5

    无法检测到与其他用户一起运行的应用程序(通过切换用户)

  6. 6

    “ doas”允许用户与其他用户一起运行命令并设置环境变量

  7. 7

    如何在Python中与其他字符一起使用另一种语言?

  8. 8

    在笔记本目录中将函数与其他python文件中的变量一起使用

  9. 9

    在Python2.7中,如何使用主脚本和其他用户定义函数中的变量

  10. 10

    如何在python中创建具有其他用户可以写入的权限的文件

  11. 11

    以其他用户身份启动python后获取Winlows登录名

  12. 12

    Windows 7中的“组/其他用户可写Python-Eggs”错误

  13. 13

    与其他用户一起在Exchange服务器日历上创建约会,而无需模拟(EWS)

  14. 14

    其他用户看不到Ruby与rbenv一起安装

  15. 15

    如何允许用户修改其他用户详细信息而没有超级用户身份?(Django / Python)

  16. 16

    分发大型,复杂的Python项目的最佳方法是,无论使用什么操作系统,它们都可以为其他用户完全安装?

  17. 17

    分发大型,复杂的Python项目的最佳方法是,无论使用什么操作系统,它们都可以为其他用户完全安装?

  18. 18

    在与其他用户第一次对话后,Slack 机器人无法进行通信

  19. 19

    用户与其他用户的关系

  20. 20

    使用与其他用户完全不同的工作区创建新用户

  21. 21

    如何与其他用户共享目录?

  22. 22

    Firestore与其他用户共享数据

  23. 23

    Github与其他用户提交

  24. 24

    如何与其他用户共享目录?

  25. 25

    与其他用户共享 Nvim 配置?

  26. 26

    在 TFS 中显示与其他用户的差异

  27. 27

    适用于AndroidStudio / Eclipse的Fabric-无法与其他用户登录

  28. 28

    无法通过HTML5 Geolocation和Android与其他用户获取位置

  29. 29

    我不能以 root 身份 su 或 sudo -i,也不能以 root 身份 ssh。但他们都可以与其他用户一起工作

热门标签

归档