Ошибка бота Telegram - telegram.error.BadRequest: Button_data_invalid - PullRequest
0 голосов
/ 23 ноября 2018

Я пытаюсь создать бот-телеграмму с библиотеками telegram и telegram.ext на Python.Я пытаюсь передать callback_data для кнопки в качестве параметра для встроенной клавиатуры, но когда добавляется клавиатура как reply_markup, выдается следующая ошибка:

Traceback (most recent call last): File "C:\Users\micke\AppData\Local\Programs\Python\Python36-32\lib\site-packages\telegram\ext\dispatcher.py", line 279, in process_update handler.handle_update(update, self) File "C:\Users\micke\AppData\Local\Programs\Python\Python36-32\lib\site-packages\telegram\ext\callbackqueryhandler.py", line 143, in handle_update return self.callback(dispatcher.bot, update, **optional_args) File ".\__init__.py", line 121, in button reply_markup=reply_markup File "C:\Users\micke\AppData\Local\Programs\Python\Python36-32\lib\site-packages\telegram\bot.py", line 60, in decorator result = func(self, *args, **kwargs) File "C:\Users\micke\AppData\Local\Programs\Python\Python36-32\lib\site-packages\telegram\bot.py", line 85, in decorator result = self._request.post(url, data, timeout=kwargs.get('timeout')) File "C:\Users\micke\AppData\Local\Programs\Python\Python36-32\lib\site-packages\telegram\utils\request.py", line 273, in post **urlopen_kwargs) File "C:\Users\micke\AppData\Local\Programs\Python\Python36-32\lib\site-packages\telegram\utils\request.py", line 210, in _request_wrapper raise BadRequest(message) telegram.error.BadRequest: Button_data_invalid

Код следующий:

p1 = "%s(@%s)"%(query.from_user.first_name,query.from_user.username) text = "<b>⚔Duel</b>\nChallenger %s is ready!\nWaiting for an opponent..."%p1 args = '{"next":"player2","p1":"%s","text":"%s"}'%(p1,text) reply_markup = InlineKeyboardMarkup(kb.kb(op = "data",args = args)) bot.edit_message_text( text=text, inline_message_id=query.inline_message_id, parse_mode=ParseMode.HTML, reply_markup=reply_markup )

Кроме того, код для клавиатуры:

class kb: def kb(op = None, args = None): if op == 'data': keyboard = [[InlineKeyboardButton("Join", callback_data = args)]]

Не знаюдействительно знаю, где я ошибаюсь.Это хорошо работает, когда вместо args я присваиваю статический текст callback_data

Как вы думаете, что это может быть?

...