如何在Telegram bot(Python)中使用inline_keyboard而不是键盘?

时间:2016-09-25 18:58:24

标签: python keyboard telegram telegram-bot

我有我在Telegram机器人中使用的这部分代码(Python):

def reply(msg=None, img=None):
        if msg:
            resp = urllib2.urlopen(BASE_URL + 'sendMessage', urllib.urlencode({
                'chat_id': str(chat_id),
                'text': msg.encode('utf-8'),
                'disable_web_page_preview': 'true',
                # 'reply_to_message_id': str(message_id),
                'reply_markup': json.dumps({'keyboard': [bline1, bline2], 'resize_keyboard': True}),
            })).read()

对于这部分,一切正常。问题是:如何使用常规键盘的inline_keyboard intead?

我知道这是一个noob问题,但如果有人可以帮助我,那就太好了。

谢谢!

1 个答案:

答案 0 :(得分:2)

因为Inline Keyboard只是一个不同的json对象,所以我说你只需用json.dumps而不是当前的构建来构建它。按照你的例子,这样的事情应该成为诀窍:

def reply(msg=None, img=None):
        if msg:
            resp = urllib2.urlopen(BASE_URL + 'sendMessage', urllib.urlencode({
                'chat_id': str(chat_id),
                'text': msg.encode('utf-8'),
                'disable_web_page_preview': 'true',
                # 'reply_to_message_id': str(message_id),
                'reply_markup': json.dumps({'inline_keyboard': [[{'text': bline1, 'callback_data': bline1}, {'text': bline2, 'callback_data': bline2}]]}),
            })).read()