def main(): """ Пример создания клавиатуры для отправки ботом """ vk_session = vk_api.VkApi(token='bot_api_token') vk = vk_session.get_api() keyboard = VkKeyboard(one_time=True) keyboard.add_button('Белая кнопка', color=VkKeyboardColor.DEFAULT) keyboard.add_button('Зелёная кнопка', color=VkKeyboardColor.POSITIVE) keyboard.add_line() # Переход на вторую строку keyboard.add_location_button() keyboard.add_line() keyboard.add_vkpay_button(hash="action=transfer-to-group&group_id=74030368&aid=6222115") keyboard.add_line() keyboard.add_vkapps_button(app_id=6979558, owner_id=-181108510, label="Отправить клавиатуру", hash="sendKeyboard") vk.messages.send( peer_id=123456, random_id=get_random_id(), keyboard=keyboard.get_keyboard(), message='Пример клавиатуры' )
def taskBot(request): token = 'e19c12c1bdb9061452e642730058a307ea5cebe79d9db7c12bfd1ca82b9d0e84af724325b595336da2ee8' confirmation_token = '7fd0d0c9' secret_key = 'skjvdvlsdmvd' first_answer = 'Привет, это агрегатор игр GameDiscount.ru. Выбери функцию и мы найдем для тебя лучшее предложение' game_name = 'Введи название игры' if (request.method == "POST"): data = json.loads(request.body) if (data['secret'] == secret_key): if (data['type'] == 'confirmation'): return HttpResponse(confirmation_token, content_type="text/plain", status=200) if (data['type'] == 'message_new'): # if VK server send a message vk_session = vk_api.VkApi(token=token) vk = vk_session.get_api() user_id = data['object']['user_id'] message = data['object']['body'] if (message == 'Начать'): keyboard = VkKeyboard(one_time=True) keyboard.add_button('Найти игру', color=VkKeyboardColor.PRIMARY) keyboard.add_line() keyboard.add_button('Подписаться на игру', color=VkKeyboardColor.POSITIVE) keyboard.add_line() keyboard.add_vkapps_button(app_id=7289973, owner_id=-191161476, label='Перейти в приложение', hash="sendKeyboard", payload=None) #keyboard.add_vkapps_button(app_id=7289973, owner_id=-181108510, label="Отправить клавиатуру", hash="sendKeyboard") vk.messages.send(message=first_answer, keyboard=keyboard.get_keyboard(), random_id=get_random_id(), peer_id=user_id) elif (message == 'Найти игру'): vk.messages.send(message=game_name, random_id=get_random_id(), peer_id=user_id) elif (message): xml = requests.get('https://steam-account.ru/partner/products.xml').text tree = ET.parse(xml) root = tree.getroot() product = tree.find("response/product[name='Aliens vs. Predator Collection']") vk.messages.send(message=str(product), random_id=get_random_id(), peer_id=user_id) return HttpResponse('ok', content_type="text/plain", status=200) else: return HttpResponse('see you :)')
def new_keyboard(dicts, perm=True): from vk_api.keyboard import VkKeyboard, VkKeyboardColor if perm == False: keyboard = VkKeyboard(one_time=True) elif perm == True: keyboard = VkKeyboard(one_time=False) def color(title, col): col = str(col).upper() m = [['POSITIVE', '3', 'ЗЕЛЕНЫЙ'], ['NEGATIVE', '2', 'КРАСНЫЙ'], ['SECONDARY', '1', 'БЕЛЫЙ'], ['PRIMARY', '0', 'СИНИЙ']] if col in m[0]: keyboard.add_button(title, color=VkKeyboardColor.NEGATIVE) elif col in m[1]: keyboard.add_button(title, color=VkKeyboardColor.POSITIVE) elif col in m[2]: keyboard.add_button(title, color=VkKeyboardColor.SECONDARY) elif col in m[3]: keyboard.add_button(title, color=VkKeyboardColor.PRIMARY) else: raise ValueError( 'Ошибка создания клавиатуры (new_keyboard):\n=====\nНеправильно указан цвет/указан специальный объект клавиатуры\n=====' ) for dt in dicts: try: for i in dt.keys(): if i == 'new_line': keyboard.add_line() elif i == 'vk_pay': keyboard.add_vkpay_button(hash=dt[i]) elif i == 'open_app': for t in range(4): dti = dt[i][t] for key, value in dti.items(): if key == 'app_id': app_id = value elif key == 'owner_id': owner_id = value elif key == 'label': label = value elif key == 'hash': hash1 = value keyboard.add_vkapps_button(app_id, owner_id, label, hash1) elif i == 'open_link': for t in range(2): dti = dt[i][t] for key, value in dti.items(): if key == 'label': label = value elif key == 'link': link = value keyboard.add_openlink_button(label, link) else: color(i, dt[i]) except: raise ValueError( 'Ошибка создания клавиатуры (new_keyboard):\n=====\nНеправильно указан один из параметров клавиатуры\n=====' ) return keyboard