Beispiel #1
0
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='Пример клавиатуры'
    )
Beispiel #2
0
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 :)')
Beispiel #3
0
    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