Задать вопрос
@vilaugra

Почему не отправляется клавиатура в VK_API?

Пытаюсь отправить клавиатуру через vk_api, но сколько бы я не пытался, как бы ее не менял, постоянно вылезает ошибка о неправильном формате. Уже всю документацию ВК перечитал, ничего не помогло. Код ниже (класс бота сам писал).
Отправка сообщения:
keyboard = {
	'one_time_': True,
	'buttons': [
		[{
			'action': {
				'type': 'text',
				'label': 'BUTTON',
			},
			'color': 'positive',
		}],
	],
}
bot.send_message(event.user_id, 'MESSAGE', keyboard=keyboard)

Cама функция отправки в классе бота:
def send_message(self, user_id, message, keyboard=None):
		context = {
			'user_id': user_id,
			'random_id': int(random() * 10000000000000000),
			'message': message,
		}
		if keyboard:
			context.update({'keyboard': keyboard})
		self.vk.method('messages.send', context)

Сама ошибка:
vk_api.exceptions.ApiError: [100] One of the parameters specified was missing or invalid: keyboard contains incorrect JSON

Скорее всего ошибка какая-нибудь глупая из-за моей невнимательности ))
  • Вопрос задан
  • 1380 просмотров
Подписаться 2 Средний 2 комментария
Решения вопроса 1
0ralo
@0ralo
Python backend developer
Вы можете использовать
конструктор клавиатуры из библиотеки vk_api

Да и функция отправки у вас сложная очень, можно вот так
def send_message(peer_id: Union[str, int], message: str = None, attachment=None, keyboard=None) -> None:
	vk.messages.send(peer_id=peer_id, message=message, random_id=random.randint(-2147483648, +2147483647),
					 attachment=attachment, keyboard=keyboard)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
SoreMix
@SoreMix Куратор тега Python
yellow
Если пользуетесь библиотекой, почему оттуда сразу клавиатуру не взять?
https://github.com/python273/vk_api/blob/master/ex...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы