inlineKeyboardMarkup не отправляется
пробую отправить клавиатуру, как показано в примере:
if __name__ == "__main__":
bot = Bot(token=TOKEN, name=NAME, version=VERSION, api_url_base=API_URL)
bot.send_text(chat_id='746691278',
text=U"helo\n\rworld<a href='aaa'>aaa</a>",
inline_keyboard_markup="[{}]".format(json.dumps([
{"text": "Action 1", "url": "http://mail.ru"},
{"text": "Action 2", "callbackData": "call_back_id_2"},
{"text": "Action 3", "callbackData": "call_back_id_3"}
])))
bot.dispatcher.add_handler(BotButtonCommandHandler(callback=buttons_answer_cb))
bot.idle()
сообщение отправляется, а клавиатуры нет.
inline_keyboard_markup="[{}]".format(json.dumps([ {"text": "Action 1", "url": "http://mail.ru"}, {"text": "Action 2", "callbackData": "call_back_id_2"}, {"text": "Action 3", "callbackData": "call_back_id_3"} ])))
Поправь вот на такой вариант:
inline_keyboard_markup="{}".format(json.dumps([[ {"text": "Action 1", "url": "http://mail.ru"}, {"text": "Action 2", "callbackData": "call_back_id_2"}, {"text": "Action 3", "callbackData": "call_back_id_3"} ]])))
Если для пользователя библиотеки сделать вот такой интерфейс
from icq import InlineKeyboardMarkup, InlineKeyboardButton
markup = InlineKeyboardMarkup()
makup.add(InlineKeyboardButton('text', data='action')
makup.add(InlineKeyboardButton('some url', url='https://t.me/')
bot.send_text(chat_id=746691278, text="Text", inline_keyboard_markup=markup)
То вопросы по формированию клавиатур в стиле [[{},{}],[],{}{}{}{][]} возникать не будут.
Всю магию сериализации можно спрятать, т.к. она у всех пользователей библиотеки будет одинаковой (+ поддержку ujson можно в коробку положить)
Если для пользователя библиотеки сделать вот такой интерфейс
from icq import InlineKeyboardMarkup, InlineKeyboardButton markup = InlineKeyboardMarkup() makup.add(InlineKeyboardButton('text', data='action') makup.add(InlineKeyboardButton('some url', url='https://t.me/') bot.send_text(chat_id=746691278, text="Text", inline_keyboard_markup=markup)То вопросы по формированию клавиатур в стиле
[[{},{}],[],{}{}{}{][]}возникать не будут.Всю магию сериализации можно спрятать, т.к. она у всех пользователей библиотеки будет одинаковой (+ поддержку ujson можно в коробку положить)
Добрый день,
Недавно смерджил в мастер ветку этого репозитория, принцип работы так же как у pyTelegramBotAPI.)