@EmeraldDaGrass

Почему не работает функция с кнопками vk api?

Всем привет!

Столкнулся с такой проблемой: когда заменяю код кнопок на функцию main_menu(), то появляется ошибка.

Ошибка:
Traceback (most recent call last):
File "C:\Users\алексей\Desktop\мойбот\проблема.py", line 41, in
write(sender, "Привет")
File "C:\Users\алексей\Desktop\мойбот\проблема.py", line 10, in write
vk.method("messages.send",{'user_id': sender,'message': message,"random_id": get_random_id(), 'keyboard': keyboard.get_keyboard()})
File "C:\Users\алексей\AppData\Local\Programs\Python\Python38-32\lib\site-packages\vk_api\vk_api.py", line 656, in method
raise error
vk_api.exceptions.ApiError: [911] Keyboard format is invalid: row 0 contains too much columns

Вот эта часть кода:

keyboard = VkKeyboard(one_time=True)
    def write(sender, message):    #функция для ответа в диалоге 
        vk.method("messages.send",{'user_id': sender,'message': message,"random_id": get_random_id(), 'keyboard': keyboard.get_keyboard()})
    def main_menu():
        keyboard = VkKeyboard(one_time=True)
        keyboard.add_button('Баланс', color=VkKeyboardColor.SECONDARY)
        keyboard.add_button('Услуги', color=VkKeyboardColor.SECONDARY)
        keyboard.add_line()
        keyboard.add_button('Тарифы', color=VkKeyboardColor.SECONDARY)
        keyboard.add_button('Роуминг', color=VkKeyboardColor.SECONDARY)
        keyboard.add_line()
        keyboard.add_button('Вызвать оператора', color=VkKeyboardColor.PRIMARY)
   
    for event in longpoll.listen():   
        if event.type == VkEventType.MESSAGE_NEW and event.to_me and event.text:
            text = event.text
            sender = event.user_id
            if b==0:
                main_menu()
                #keyboard = VkKeyboard(one_time=True)
                #keyboard.add_button('Баланс', color=VkKeyboardColor.SECONDARY)
                #keyboard.add_button('Услуги', color=VkKeyboardColor.SECONDARY)
                #keyboard.add_line()
                #keyboard.add_button('Тарифы', color=VkKeyboardColor.SECONDARY)
                #keyboard.add_button('Роуминг', color=VkKeyboardColor.SECONDARY)
                #keyboard.add_line()
                #keyboard.add_button('Вызвать оператора', color=VkKeyboardColor.PRIMARY)
                write(sender, "Привет")

До замены всё работает отлично. С чем это связано и как можно это исправить?
  • Вопрос задан
  • 218 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект