我有一个 “button-1” 它调用 KeyboardButtonRequestChat 然后我可以选择频道并将其发送到机器人,该函数将通过 chat_shared 获取频道 id,但是我想添加另一个按钮,该按钮也将调用 KeyboardButtonRequestChat 但在不同的条件下,我还将创建一个通过 chat_shared 获取 id 的函数。但是如何为这些函数创造条件,让“button-1”调用一个“function-1”,“button-2”调用“function-2”呢?
也许可以使用 “request_id” 添加条件?否则 “button-1” 将调用 “function-1” 和 “function-2”
如果有任何答案,我将不胜感激。
按钮:
@dp.message(lambda message: message.text == "Buttons")
async def configure_source_channels(message: Message, state: FSMContext):
user_id = message.from_user.id
user_states[user_id] = UserStates.SOURCE_CHANNELS
keyboard = ReplyKeyboardMarkup(keyboard=[
[KeyboardButton(text="button-1", request_chat=KeyboardButtonRequestChat(
request_id=1,
user_is_bot=False,
chat_is_channel=True,
chat_is_forum=False
))],
[KeyboardButton(text="button-2", request_chat=KeyboardButtonRequestChat(
request_id=2,
user_is_bot=True,
chat_is_channel=False,
chat_is_forum=False
))],
])
功能:
@dp.message(F.chat)
async def handle_request_chat_button1(msg: Message, state: FSMContext):
print("Handling request_chat")
chat_info = msg.chat_shared.chat_id
@dp.message(F.chat)
async def handle_request_chat_button2(msg: Message, state: FSMContext):
print("Handling request_chat")
chat_info = msg.chat_shared.chat_id
在许多编程语言中,您可以使用条件语句来控制是否应执行函数。根据语言的不同,语法可能略有不同,但不同语言的总体思路是相似的。以下是几种常见语言的示例。