简体   繁体   English

Python Telepot 机器人内联键盘

[英]Python Telepot bot inline keybard

I am building a bot in Python using Telepot.我正在使用 Telepot 在 Python 中构建一个机器人。 I am able to have it respond to commands but when i implement an inline keyboard i do not know how to call on them.我可以让它响应命令,但是当我实现内联键盘时,我不知道如何调用它们。 I know it must be callbackquery but i cannot find how to implement it.我知道它必须是回调查询,但我找不到如何实现它。 Any help would be appreciated.任何帮助,将不胜感激。

import sys
import time
import telepot
from telepot.namedtuple import ReplyKeyboardMarkup, KeyboardButton, InlineKeyboardMarkup, InlineKeyboardButton


def on_chat_message(msg):
    content_type, chat_type, chat_id = telepot.glance(msg)
    print('Chat Message:', content_type, chat_type, chat_id)

    if content_type == 'text':
        if msg['text'] == '/start':
           bot.sendMessage(chat_id, 'Welcome to @UK_Cali Teleshop\n      Created by JonSnow 2021',reply_markup = InlineKeyboardMarkup(inline_keyboard=[
                                    [InlineKeyboardButton(text="Feedback",callback_data='a'), InlineKeyboardButton(text="You",callback_data='b'),InlineKeyboardButton(text="PGP",callback_data='c'), InlineKeyboardButton(text="Cunt",callback_data='d')],
                                    [InlineKeyboardButton(text="Products",callback_data='e')]
                                ]
                            ))
        
        
        bot.answerCallbackQuery(callback_query_id)
    
    
            



bot = telepot.Bot('1646167995:AAGsOwfjcryYYkoah69QJ6XGA7koUywmuRk')
print('Listening ...')
bot.message_loop({'chat': on_chat_message}, run_forever=True)






bot = telepot.Bot('TOKEN')
import time
import telepot
from telepot.loop import MessageLoop
from telepot.namedtuple import InlineKeyboardMarkup, InlineKeyboardButton

TOKEN = "super secret bot token"

def on_chat_message(msg):

    #here you handel messages and create the iniline keyboard

    content_type, chat_type, chat_id = telepot.glance(msg)

    keyboard = InlineKeyboardMarkup(inline_keyboard=[
                   [InlineKeyboardButton(text='button text', callback_data='callback query data for reconizing it')],
               ])


def on_callback_query(msg):

    #here you handels callback querys,
    #the event that are fired when user clickan inline keyboard'sbutton


    query_id, from_id, query_data = telepot.glance(msg, flavor='callback_query')

    #do something based on the callback query,
    #to recognize the button pressed check query_data,
    #that corresponds to he callback_data setted when creating the button

    

bot = telepot.Bot(TOKEN)
MessageLoop(bot, {'chat': on_chat_message, 
                  'callback_query': on_callback_query}).run_as_thread()

while True:
    time.sleep(10)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM