Помогите внедрить клавиатуру в бота, не понимаю как:
print("import")
import wikipedia
language = "ru"
wikipedia.set_lang(language)
from translate import Translator
import vk_api
from vk_api.keyboard import VkKeyboard
from vkbottle import GroupEventType, GroupTypes, Keyboard, Text, VKAPIError
from vkbottle.bot import Bot, Message
from vkbottle import Keyboard, KeyboardButtonColor, Text, OpenLink
from vkbottle.tools import DocMessagesUploader
from random import *
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
from vk_api import *
translator= Translator(from_lang="russian",to_lang="english")
import datetime
from vk_api.longpoll import VkLongPoll, VkEventType
from vk_api import VkUpload
print("vk")
vk_session = VkApi(token='слышь, не наглей')
long_poll = VkBotLongPoll(vk_session, 'не знаю надо оно тебе или нет')
vk = vk_session.get_api()
t_p = 1
token="я скозал не наглей"
bh = vk_api.VkApi(token = token)
give = bh.get_api()
longpoll = VkLongPoll(bh)
reg_name = False
print("def's")
def send_textVk(id, text):
bh.method('messages.send', {'user_id' : id, 'message' : text, 'random_id': 0})
def get_keys():
menu = VkKeyboard()
menu.add_button(label="мой ид", color="positive")
menu.add_line()
menu.add_button(label="45", color="primary")
menu.add_line()
menu.add_button(label="45", color="positive")
menu = menu.get_keyboard()
return menu
def get_name(uid: int) -> str:
data = vk.users.get(user_ids= uid)[0]
return "{} {}".format(data["first_name"], data["last_name"])
print("listening")
for event in longpoll.listen():
if event.type == VkEventType.MESSAGE_NEW:
if event.to _me:
message = event.text.lower()
id = event.user_id
print("Новое сообщение от",get_name(id),"(id:",id,'):', event.text)
if message == "меню":
fullname = get_name(id)
hello = randint(0,3)
if hello == 0:
hello_t = "Здравствуй, "
elif hello == 1:
hello_t = "Привет, "
elif hello == 2:
hello_t = "Ку, "
else:
hello_t = "Как дела, "
if hello != 3:
end_t = hello_t + fullname
send_textVk(id, end_t)
else:
end_t = hello_t + fullname + '?'
send_textVk(id, end_t)
send_textVk(id, "Список команд:")
send_textVk(id, "Переводчик")
send_textVk(id, "инфо")
elif message == "инфо":
send_textVk(id, 'Создатель: [id не буду свой айди палить|и имя]')
else:
send_textVk(id, 'Я вас не понимаю! (Напишите меню)')
Программное обеспечение
Vk bot python longpool Клавиатура помогите пж
Для того чтобы добавить клавиатуру в вашего бота на VK, вы можете использовать модуль VkKeyboard. В вашем коде уже импортирован этот модуль, так что можно приступить к созданию клавиатуры.
Например, вы можете добавить клавиши с помощью функции add_button(). Каждая клавиша задается меткой (label) и цветом (color). Кроме того, вы можете добавлять разделители с помощью функции add_line().
Вот пример кода, который добавляет клавиатуру с двумя кнопками и отправляет ее пользователю:
Также обратите внимание, что при отправке сообщения с клавиатурой вы должны передать параметр keyboard со значением, возвращенным функцией get_keyboard(). Это позволит отобразить клавиатуру в сообщении.
Надеюсь, это поможет вам добавить клавиатуру в вашего бота на VK!
Например, вы можете добавить клавиши с помощью функции add_button(). Каждая клавиша задается меткой (label) и цветом (color). Кроме того, вы можете добавлять разделители с помощью функции add_line().
Вот пример кода, который добавляет клавиатуру с двумя кнопками и отправляет ее пользователю:
def send_textVk(id, text, keyboard=None):
bh.method('messages.send', {'user_id' : id, 'message' : text, 'random_id': 0, 'keyboard': keyboard})
def get_keyboard():
keyboard = VkKeyboard(one_time=False)
keyboard.add_button('Кнопка 1', color=VkKeyboardButtonColor.POSITIVE)
keyboard.add_line()
keyboard.add_button('Кнопка 2', color=VkKeyboardButtonColor.NEGATIVE)
return keyboard.get_keyboard()
for event in longpoll.listen():
if event.type == VkEventType.MESSAGE_NEW:
if event.to_me:
message = event.text.lower()
id = event.user_id
if message == 'меню':
send_textVk(id, 'Выберите действие', keyboard=get_keyboard())
Обратите внимание, что параметр one_time в функции VkKeyboard указывает, будет ли клавиатура скрыта после первого использования. Если вы хотите, чтобы клавиатура оставалась открытой, установите значение параметра one_time на False. Также обратите внимание, что при отправке сообщения с клавиатурой вы должны передать параметр keyboard со значением, возвращенным функцией get_keyboard(). Это позволит отобразить клавиатуру в сообщении.
Надеюсь, это поможет вам добавить клавиатуру в вашего бота на VK!
keyboard = VkKeyboard(one_time=True)
keyboard.add_button('Нажми меня', color=VkKeyboardColor.PRIMARY)
vk.messages.send(user_id=user_id, message='Привет!', keyboard=keyboard.get_keyboard())
keyboard = VkKeyboard(one_time=True)
keyboard.add_button('Кнопка 1', color=VkKeyboardColor.PRIMARY)
keyboard.add_line()
keyboard.add_button('Кнопка 2', color=VkKeyboardColor.SECONDARY)
keyboard.add_button('Кнопка 3', color=VkKeyboardColor.POSITIVE)
Чтобы добавить клавиатуру в вашего бота, вам нужно сначала создать объект клавиатуры, используя класс VkKeyboard из библиотеки vk_api.
если вы не знаете куда вставлять то нужно вставить в ыдаваемое сообщение в конце
как здесь vk.messages.send(user_id=user_id, message='Привет!', keyboard=keyboard.get_keyboard())
keyboard.add_button('Нажми меня', color=VkKeyboardColor.PRIMARY)
vk.messages.send(user_id=user_id, message='Привет!', keyboard=keyboard.get_keyboard())
keyboard = VkKeyboard(one_time=True)
keyboard.add_button('Кнопка 1', color=VkKeyboardColor.PRIMARY)
keyboard.add_line()
keyboard.add_button('Кнопка 2', color=VkKeyboardColor.SECONDARY)
keyboard.add_button('Кнопка 3', color=VkKeyboardColor.POSITIVE)
Чтобы добавить клавиатуру в вашего бота, вам нужно сначала создать объект клавиатуры, используя класс VkKeyboard из библиотеки vk_api.
если вы не знаете куда вставлять то нужно вставить в ыдаваемое сообщение в конце
как здесь vk.messages.send(user_id=user_id, message='Привет!', keyboard=keyboard.get_keyboard())
Андрей Сергеевич
а куда вставлять , не подскажете?
Похожие вопросы
- мне нужно чтонибуть надёжное чтоб скачивать видео с интернета кроме vk bot
- Ребят профи или опытные помогите пж с Windows 10
- Помогите ПЖ закачать бесплатный антивирус Аваст....везде требуют платные смски или ключи!!!
- Срочно, помогите пж удалить нежелательное ПО
- 5. Зачем были изобретены первые операционные системы? к семинару помогите пж подготовиться
- МОжете помочь пж, соберите ПК до 30к рублей чтобы тянул игры!
- Помогите пж я не могу активировать вин 8.1 профессиональную 9600 после перезапуска слетает активация вин 10 активировал
- Переназначение адресов клавиш на клавиатуре, бинды
- Не работает клавиатура виндовс 10
- ПЖ! ! ПЖ! ! Об антивирусах. . Очень надо..
Traceback (most recent call last):
File "C:\Users\TIMUR\Desktop\python\Новая папка\fff.py", line 89, in <module>
send_textVk(id, end_t,keyboard = get_keyboard())
File "C:\Users\TIMUR\Desktop\python\Новая папка\fff.py", line 60, in get_keyboard
keyboard.add_button('Кнопка 1', color=VkKeyboardButtonColor.POSITIVE)
NameError: name 'VkKeyboardButtonColor' is not defined. Did you mean: 'KeyboardButtonColor'?
как так то
я заменил VkKeyboardButtonColor на KeyboardButtonColor но вылезло еще больше ошибок, вот последняя строка:
TypeError: Object of type KeyboardButtonColor is not JSON serializable
но всё равно спасибо!