发送带有 call.message 对象的消息

Send a message with a call.message object

关键是我想自动 return 到我的机器人的开始菜单。

当我得到 message 对象时,没问题:我分配了 message.text = '/start' 并调用了 start_menu(message)

@bot.message_handler()
def start_menu(message):
    if message.text == '/start':
         # ...
         # some code
         # ...

def get_something(message):
    # ...
    # some code 
    # ...
    message.text = '/start'
    start_menu(message)

但是当我对 callback_query_handler() 中的 call.message 对象进行同样的尝试时,我遇到了一个错误

def some_function(message):
    # ...
    # some code 
    # ...
    message.text = '/start'
    start_menu(message)

@bot.callback_query_handler(func=lambda call: True)
def callback_worker(call):
    if call.data == 'some_data':
        some_function(call.message)

A request to the Telegram API was unsuccessful. Error code: 403. Description: Forbidden: bot can't send messages to bots

我尝试创建新的 message 对象,但在使用 start_menu(message) 函数中的 bot.send_message() 时,message.from_user 字段出现问题。

def some_function(message):
    # ...
    # some code 
    # ...
    new_message = telebot.types.Message(message_id=message.message_id,
                                        chat=message.chat,
                                        content_type=["text"],
                                        date=dt.datetime.today().timestamp(),
                                        from_user=message.chat.id,
                                        options={},
                                        json_string="")
    new_message.text = '/start'
    start_menu(new_message)

bot.send_message(message.from_user.id, title) > AttributeError: 'int' object has no attribute 'id'

所以,我想我需要在 new_message 定义时使用其他东西来初始化 from_user 字段。但是已经不知道了。

请帮忙。提前致谢

已解决。

如果传递给 from_user 字段 call.message.chat 对象本身,它会起作用。

def some_function(message):
    # ...
    # some code 
    # ...
    new_message = telebot.types.Message(message_id=message.message_id,
                                        chat=message.chat,
                                        content_type=["text"],
                                        date=dt.datetime.today().timestamp(),
                                        from_user=message.chat,
                                        options={},
                                        json_string="")
    new_message.text = '/start'
    start_menu(new_message)