Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

inlineKeyboardMarkup не отправляется #7

Open
eremeevdev opened this issue May 6, 2020 · 3 comments
Open

inlineKeyboardMarkup не отправляется #7

eremeevdev opened this issue May 6, 2020 · 3 comments

Comments

@eremeevdev
Copy link

пробую отправить клавиатуру, как показано в примере:

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()

сообщение отправляется, а клавиатуры нет.

@Duiesel
Copy link

Duiesel commented May 16, 2020

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"} ]])))

@Olegt0rr
Copy link

Olegt0rr commented Jun 7, 2020

Если для пользователя библиотеки сделать вот такой интерфейс

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 можно в коробку положить)

@dasshit
Copy link
Contributor

dasshit commented Mar 26, 2021

Если для пользователя библиотеки сделать вот такой интерфейс

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.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants