如何使用远程机器人进行内联模组?

问题描述 投票:0回答:1

我想为我的机器人制作一个内联模组,我什至不会尝试制作它,它仍然不起作用,它只是加载并且按钮不会弹出。

如果有人能够展示如何实际制作内联部分的工作版本,那就太好了。

我尝试运行 github 上 telebot 示例中的代码,但它仍然不起作用。 这个例子:

# This example show how to write an inline mode telegram bot use pyTelegramBotAPI.

import logging
import sys
import time
import telebot
from telebot import types

API_TOKEN = ""
bot = telebot.TeleBot(API_TOKEN)
telebot.logger.setLevel(logging.DEBUG)

@bot.inline_handler(lambda query: query.query == 'text')
def query_text(inline_query):
    try:
        r = types.InlineQueryResultArticle('1', 'Result1', types.InputTextMessageContent('hi'))
        r2 = types.InlineQueryResultArticle('2', 'Result2', types.InputTextMessageContent('hi'))
        bot.answer_inline_query(inline_query.id, [r, r2])
    except Exception as e:
        print(e)

@bot.inline_handler(lambda query: query.query == 'photo1')
def query_photo(inline_query):
    try:
        r = types.InlineQueryResultPhoto('1', 'https://raw.githubusercontent.com/eternnoir/pyTelegramBotAPI/master/examples/detailed_example/kitten.jpg', 'https://raw.githubusercontent.com/eternnoir/pyTelegramBotAPI/master/examples/detailed_example/kitten.jpg', input_message_content=types.InputTextMessageContent('hi'))
        r2 = types.InlineQueryResultPhoto('2', 'https://raw.githubusercontent.com/eternnoir/pyTelegramBotAPI/master/examples/detailed_example/rooster.jpg', 'https://raw.githubusercontent.com/eternnoir/pyTelegramBotAPI/master/examples/detailed_example/rooster.jpg')
        bot.answer_inline_query(inline_query.id, [r, r2], cache_time=1)
    except Exception as e:
        print(e)

@bot.inline_handler(lambda query: query.query == 'video')
def query_video(inline_query):
    try:
        r = types.InlineQueryResultVideo('1', 'https://github.com/eternnoir/pyTelegramBotAPI/blob/master/tests/test_data/test_video.mp4?raw=true', 'video/mp4', 'https://raw.githubusercontent.com/eternnoir/pyTelegramBotAPI/master/examples/detailed_example/rooster.jpg', 'Title')
        bot.answer_inline_query(inline_query.id, [r])
    except Exception as e:
        print(e)

@bot.inline_handler(lambda query: len(query.query) == 0)
def default_query(inline_query):
    try:
        r = types.InlineQueryResultArticle('1', 'default', types.InputTextMessageContent('default'))
        bot.answer_inline_query(inline_query.id, [r])
    except Exception as e:
        print(e)

def main_loop():
    bot.infinity_polling()
    while 1:
        time.sleep(3)

if __name__ == '__main__':
    try:
        main_loop()
    except KeyboardInterrupt:
        print('\nExiting by user request.\n')
        sys.exit(0)

据我了解,Inline_handler根本不响应请求,我也尝试这样做:

@bot.inline_handler(lambda query: True):
def answer(query):
    print(query)

什么都没有

python bots telegram telegram-bot telebot
1个回答
0
投票
如果没有

allowed_updates=True

 中的 
bot.infinity_polling()
inline_handler 将无法工作。有他在,一切都好。

© www.soinside.com 2019 - 2024. All rights reserved.