发送带有 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)
关键是我想自动 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)