Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import vk_api, json, time, random
- from vk_api.bot_longpoll import VkBotEventType, VkBotLongPoll
- # Consts
- token = ""
- vk = vk_api.VkApi(token=token)
- longpoll = VkBotLongPoll(vk, "Тут айди группы, без кавычек")
- admins = []
- # Keyboards
- def get_button(label, color, payload=""):
- return {
- "action": {
- "type": "text",
- "payload": json.dumps(payload),
- "label": label
- },
- "color": color
- }
- keyboard = {
- "one_time": True,
- "buttons": [
- [get_button(label="1", color="primary"),
- get_button(label="2", color="negative")],
- [get_button(label="3", color="positive")],
- [get_button(label="4", color="negative")]
- ]
- }
- keyboard = json.dumps(keyboard, ensure_ascii=False).encode('utf-8')
- keyboard = str(keyboard.decode('utf-8'))
- def send_msg(peer_id, message, keyboard):
- '''
- :param peer_id: Объект беседы
- :param message: Объект сообщения
- :param keyboard: Объект клавиатуры
- :return None:
- '''
- vk.method("messages.send", {"peer_id": peer_id, "message": message, "keyboard": keyboard, "random_id": 0})
- def main():
- '''
- Main class #Listener for messages
- :return None:
- '''
- for event in longpoll.listen():
- if event.type == VkBotEventType.MESSAGE_NEW:
- if event.obj.peer_id == event.obj.from_id: # Работа в личных сообщениях, для бесед event.obj.peer_id != event.obj.from_id
- text = event.object.text.lower() # Приравниваем сообщение в нижний регистр
- peer = event.object.peer_id # Сокращаем объект беседы до peer, чтобы было удобнее
- if text == "привет":
- send_msg(peer, "Привет, я бот, чтобы открыть меню напиши /menu", None)
- elif text == "связаться":
- for i in admins:
- send_msg(i, f"{event.object.from_id} хочет с вами связаться!", None) # Будет работать, если у администраторов будет диалог с сообществом
- elif text == "/menu" or text == "начать":
- send_msg(peer, "Выбери кнопку", keyboard)
- if __name__ == '__main__':
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement