【问题标题】:Making Custom keyboards in telegram bot using pure API使用纯 API 在电报机器人中制作自定义键盘
【发布时间】:2020-07-05 04:36:30
【问题描述】:

我正在尝试仅使用 API 而没有外部包来创建电报机器人。 我已经完成了基本功能的创建,并且我的机器人能够发送短信。

我只想知道如何使用ReplyKeyboardMarkup。 正如文档中提到的,我应该使用一些参数,但我不知道如何使用它们,或者我是否应该在请求中发送它们。

谁能告诉我,除了使用 Telebot 等外部软件包之外,我应该怎么做才能在我的代码中使用这个 API。

【问题讨论】:

    标签: python api python-requests telegram telegram-bot


    【解决方案1】:

    带有inlinekeyboardbutton 的小示例通过sendMessage 方法中的reply_markup 参数发送。

    如文档中所述,此方法与 replykeyboardmarkup 所需的方法相同

    import json
    import requests
    
    # Create sendMessage url
    bottoken = "94924.............."
    url = "https://api.telegram.org/bot" + bottoken + "/sendMessage"
    
    # Create keyboard, convert dic to json with json.dumps
    kb=json.dumps(
        { "inline_keyboard":
            [
                [
                    { "text": "Yes", "callback_data": "x" },
                    { "text": "No", "callback_data": "x" }
                ]
            ]
        }
    )
    
    # Create data dict
    data = {
        'text': (None, 'Hi!'),
        'chat_id': (None, 12345678),
        'parse_mode': (None, 'Markdown'),
        'reply_markup': (None, kb )
    }
    
    # Send
    res=requests.post(url=url, headers={}, files=data)
    print(res.text.encode('utf8'))
    

    【讨论】:

    • 感谢您的回复。但还有一个问题。用户点击按钮后如何获取数据?我的意思是回调数据。
    • @TahaJaliliTATI I 虽然你的问题是如何发送/使用reply_markup。请澄清另一个问题,我会尝试编辑我的帖子!
    • 不,你是对的,你的答案是完整的。我只是好奇而已。谢谢
    • @TahaJaliliTATI 您谈论后台进度/守护程序女巫会每隔几秒钟检查一次新回复。可以使用永无止境的 python 脚本来创建一个没有任何外部库的库。看看例如。 never ending python scriptsetup python daemon.
    • @TahaJaliliTATI 但是你为什么要重新发明轮子呢? ;) 看看(例如)python-telegram-bot how to make your bot persistent
    猜你喜欢
    • 2016-07-28
    • 2016-03-22
    • 2018-03-23
    • 2017-08-01
    • 2020-10-08
    • 1970-01-01
    • 2017-02-14
    • 2022-10-05
    • 2018-09-25
    相关资源
    最近更新 更多