Как сделать свою клавиатуру в ВК

Программирование – это наука о создании приложений и программ, которые могут выполнить определенную задачу. С годами программирование становится все более популярным, ведь оно помогает создавать инновационные продукты и улучшать нашу жизнь. Сегодня мы поговорим о том, как помочь добавить клавиатуру к вашему боту ВКонтакте.

VK API – это мощный инструмент для создания ботов и приложений, который позволяет работать с данными, получаемыми из социальной сети ВКонтакте. Клавиатура – это один из самых важных элементов бота ВКонтакте, потому что с ее помощью пользователи могут взаимодействовать с ботом. Как же добавить клавиатуру к боту ВКонтакте?

Первым шагом для добавления клавиатуры к боту ВКонтакте является создание нового сообщения. Для этого нужно использовать метод messages.send. Этот метод позволяет отправить сообщение с текстом и клавиатурой пользователю.

Следующим шагом является создание клавиатуры. Для этого необходимо использовать метод messages.getKeyboard. Этот метод позволяет создать новую клавиатуру или изменить существующую.

Как поставить любое фото на клавиатуру Телефона ?

В качестве параметров метода messages.getKeyboard можно указать следующее:

— кнопки (количество кнопок и их положение)
— цвета кнопок (для смены стиля)
— режим клавиатуры (обычная или инлайн)

Например, код ниже создает простую клавиатуру с двумя кнопками:

$keyboard = [ ‘one_time’ => false, ‘buttons’ => [ [ [ ‘action’ => [ ‘type’ => ‘text’, ‘payload’ => json_encode([‘button’ => ‘1’]), ‘label’ => ‘Button 1’ ], ‘color’ => ‘primary’, ], [ ‘action’ => [ ‘type’ => ‘text’, ‘payload’ => json_encode([‘button’ => ‘2’]), ‘label’ => ‘Button 2’ ], ‘color’ => ‘secondary’, ], ], ];

После создания клавиатуры ее нужно прикрепить к сообщению, используя параметр keyboard. Например, код ниже отправляет сообщение с простой клавиатурой пользователю:

$params = array( ‘user_id’ => $user_id, ‘message’ => ‘Привет, я твой бот! Нажми на одну из кнопок ниже:’, ‘random_id’ => 0, ‘keyboard’ => json_encode($keyboard) ); $vk->messages()->send(VK_TOKEN, $params);

Также можно создать клавиатуру с помощью объекта Keyboard. Все кнопки клавиатуры хранятся в массиве кнопок, и используются методы addRow и addButton для добавления кнопок на клавиатуру. Пример кода создания клавиатуры с помощью объекта Keyboard:

$keyboard = new Keyboard(); $keyboard->addRow(); $keyboard->addButton(new TextButton([‘label’ => ‘Button 1’, ‘payload’ => [‘command’ => ‘button1’], ‘color’ => Keyboard::COLOR_PRIMARY])); $keyboard->addButton(new TextButton([‘label’ => ‘Button 2’, ‘payload’ => [‘command’ => ‘button2’], ‘color’ => Keyboard::COLOR_PRIMARY])); $params = array( ‘user_id’ => $user_id, ‘message’ => ‘Привет, я твой бот! Нажми на одну из кнопок ниже:’, ‘random_id’ => 0, ‘keyboard’ => $keyboard );

Как видно из примеров, добавление клавиатуры к боту ВКонтакте довольно простое. Но нужно следить за тем, чтобы клавиатура не занимала слишком много места на экране, и при этом оставалась удобной и понятной для пользователя. Клавиатура не должна засорять экран, и для этого необходимо использовать только необходимое количество кнопок.

Скрытая Функция Твоей Клавиатуры на Телефоне

Надеемся, что данная статья поможет вам добавить клавиатуру к вашему боту ВКонтакте, и что вы получите удовольствие от создания своих собственных приложений и ботов. Успехов вам в программировании!

Похожие записи:

  1. Как настроить доступ к чат-боту на сайте, созданным на Tilda?
  2. Какие существуют способы контроля доступа к telegram-боту?
  3. Python Телеграм бот. есть база данных, которая обновляется, моя задача: я пишу боту номер айди мне с базы должен отправить данные этого айди?
  4. Ошибка после отправки картинки Телеграм-боту
  5. Как задать зажержку боту на отправку сообщений? Python telebot
Еще по теме:  Как установить Вконтакте на Apple iwatch 3

Источник: qaa-engineer.ru

Создание бота для ВКонтакте на языке програмирования Python

Создание бота для ВКонтакте на языке программирования Python

Для начала нам надо установить нужные библиотеки, а точнее vk_api.

В начале разберемся как получить токен для нашего бота.

  1. Создайте сообщество
  2. В меню справа выберете вкладку «Управление»
  3. Во вкладке «Сообщения» выберете «Настройки для ботов»
  4. Включите возможности бота
  5. В меню справа выберете вкладку «Настройки», в которой выберете «Работа с API»
  6. Создайте ключ доступа
  7. Разрешите, что вам нужно

Начинаем писать код

Импортируем что нужно:

import json import vk_api from vk_api.longpoll import VkLongPoll, VkEventType #для тех кто поместил токен в config.py from config import TOKEN

Далее пишем строки, которые просто обязательно нужны, для того что бы работать с сообществом (авторизируем бота):

vk_session = vk_api.VkApi(token=TOKEN) #для людей поместивших токен в config vk_api.VkApi(token=’Ваш токен’) #Для остальных vk = vk_session.get_api() longpoll = VkLongPoll(vk_session)

Далее пишем цикл, в котором будут обрабатываться сообщения:

for event in longpoll.listen(): if event.type == VkEventType.MESSAGE_NEW: if event.to_me: msg = event.text.lower() > Между циклом и авторизацием (назовём это место аиц) будет код позволяющий отправлять сообщения.

Для того что бы отправить сообщение надо в аиц добавить код:

def sender(id, text): vk.messages.send(user_id=id, message=text, random_id=0)

Теперь в цикл мы можем добавить обработку сообщений:

if msg == ‘hi’: sender(‘hello’, id) #Первым аргументом передаем сообщение, которое он скажет, а вторым id человека

Учимся отправлять стикеры и фотографии

Для того что бы отправлять стикеры в аиц добавляем:

def send_stick(id, number): vk.messages.send(user_id=id, sticker_id=number, random_id=0)

Теперь надо получить id стикера для этого надо:

  1. Правой кнопкой мыши нажать на стикер (неважно есть ли он у вас или нет)
  2. Иследуем элемент
  3. (то что подчеркнуто красным и есть айди стикера)

Далее в цикл добавляем строку:

send_stick(id, «id стикера без кавычек»)

Что бы отправить фотографию надо в первых что бы фотография была либо у вас на устройстве либо во Вконтакте (я расскажу только о втором).

Для того что бы найти айди фото надо открыть фотографию и в ссылке скопировать текст начиная со слова photo включительно и до % не включительно, например:photo-190960458_457239182

Далее в аиц добавляем:

def send_photo(id, url): vk.messages.send(user_id=id, attachment=url, random_id=0)

а в цикл добавляем:

send_photo(id, ‘photo337511104_457242663’)

Создание клавиатуры

Для начала импортируем
from vk_api.keyboard import VkKeyboard, VkKeyboardColor

Потом идет описание самой клавиатуры

keyboard = VkKeyboard(one_time=True) keyboard.add_button(‘Привет’, color=VkKeyboardColor.SECONDARY) keyboard.add_button(‘Клавиатура’, color=VkKeyboardColor.POSITIVE)

Далее добавляем в функцию которую будем вызывать keyboard=keyboard.get_keyboard()

def sender(id, text): vk.messages.send(user_id=id, message=text, random_id=0, keyboard=keyboard.get_keyboard())

Теперь при вызове данной функции будет появляться клавиатура

Весь код, который был показан в данном уроке:

from vk_api.keyboard import VkKeyboard, VkKeyboardColor import vk_api from vk_api.longpoll import VkLongPoll, VkEventType from config import vk_token from vk_api.keyboard import VkKeyboard, VkKeyboardColor vk_session = vk_api.VkApi(token=vk_token) vk = vk_session.get_api() longpoll = VkLongPoll(vk_session) # Создание клавиатуры keyboard = VkKeyboard(one_time=True) keyboard.add_button(‘Привет’, color=VkKeyboardColor.SECONDARY) keyboard.add_button(‘Клавиатура’, color=VkKeyboardColor.POSITIVE) # Отправление сообщений с клавиатурой def sender(id, text): vk.messages.send(user_id=id, message=text, random_id=0, keyboard=keyboard.get_keyboard()) # Отправление сообщений без клавиатуры def sender_1(id, text): vk.messages.send(user_id=id, message=text, random_id=0) # Отправление стикеров def send_stick(id, number): vk.messages.send(user_id=id, sticker_id=number, random_id=0) # Отправление фото def send_photo(id, url): vk.messages.send(user_id=id, attachment=url, random_id=0) for event in longpoll.listen(): if event.type == VkEventType.MESSAGE_NEW: if event.to_me: msg = event.text.lower() if msg == ‘hi’: sender(id, ‘hello’) send_stick(id, 112) send_photo(id, ‘photo337511104_457242663’)

Удачи в ваших начинаниях!

  • боты для социальных сетей
  • python
  • вконтакте
  • вконтакте бот

Источник: habr.com

Как сделать свою клавиатуру в вк

Сегодня мы научимся делать не что то там, а самую настоящую клавиатуру со всем стандартным набором возможностей, которую при желании вы сможете даже использовать на своем Android устройстве вместо стандартной (ну представьте себе — печатать смс-ки на собственной клавиатуре, что может быть лучше:)). Если вы думаете, что урок будет очень сложным — то вы правы вы ошибаетесь. Оказывается, что в стандартном функционале Android SDK Manager есть абсолютно все необходимое для создания полноценной клавиатуры без лишних страданий. Нам не нужно будет ни вырисовывать внешний вид клавиш, ни настраивать распознавание нажатий клавиш, ни мучиться с привязыванием нашей будущей клавиатуры к полям ввода. Все это уже по умолчанию есть в SDK Manager, нам только осталось научиться этим воспользоваться!

Еще по теме:  Приветственный пост в ВК пример

Начнем. Создаем новый проект, я назвал его Keyboard (как мы неоднократно договаривались — все названия на ваше усмотрение, только лишь бы вы сами в них не путались). На том шаге, когда нам предлагается создать какую либо Activity, выбираем Add No Activity и жмем финиш.

Перво наперво, что нам нужно сделать это получить для нашего приложения разрешение ему быть клавиатурой:). Мы хотим создать свое устройство ввода, что называется Input Method Editor (IME), оно определяется в файле манифеста как Service, использующий разрешение BIND_INPUT_METHOD и соответствует действию android.view.InputMethod. Идем в файл манифеста AndroidManifest.xml и добавляем в тег следующее:

Видим красные подчеркивания (нам не привыкать), не волнуемся.

Тег Service содержит тег , который ссылается на несуществующий пока файл method.xml. без этого файла ОС Android не признает нашу клавиатуру как корректный метол ввода, который можно использовать. Этот файл должен содержать подробности о методе ввода и его подтипах. Для нашей клавиатуры определим всего один подтип для en_US локализации (не будем пока экспериментировать с русским, нам главное понять принцип). Создаем в приложении res/layout папку и создаем в ней нужный нам файл method.xml. Вносим в файл res/layout/mehod.xml следующее:

Теперь давайте отредактируем файл строковых ресурсов res/values/strings.xml. Нам нужно добавить сюда строки для:

— название для IME;

— название для подтипа IME;

Имя приложения у нас уже есть, остается только добавить две нужные строчки. Отредактированный файл strings.xml выглядит так:

resources> string name=»app_name»>Keyboardstring> string name=»ime»>IMEstring> string name=»subtype_en_US»>English (US)/string> /resources>

Теперь нужно определить внешний вид клавиатуры. Файл layout для нашей клавиатуры будет содержать только один объект — KeyboardView. Для того, чтобы наша клавиатура появлялась в низу экрана, настроим атрибут layout_alignParentBottom со значением true. Создаем файл res/layout/keyboard.xml следующее:

Строка keyPreviewLayout отвечает за то, как будет выглядеть нажатая клавиша на нашей клавиатуре. Как видите, за ее вид будет отвечать файл preview, который мы и создадим. Создаем файл res/layout/preview.xml и добавим в него следующее содержимое:

xml version=»1.0″ encoding=»utf-8″?> TextView xmlns_android=»http://schemas.android.com/apk/res/android» android_layout_width=»match_parent» android_layout_height=»match_parent» android_gravity=»center» android_background=»#ffff00″ android_textStyle=»bold» android_textSize=»30sp» > /TextView>

Теперь нужно определить клавиши клавиатуры. Подробное описание клавиш и их расположение описывается в специальном .xml файле. Каждая клавиша имеет следующие атрибуты:
— keyLabel — название клавиши, которое будет отображаться на клавише;

— codes — этот атрибут содержит уникальный код, который характеризует нажатую клавишу.

Каждая клавиша, будь то цифра, буква, какой — либо знач имеют свой собственный уникальный код. Например, буква А имеет значение codes — 97, соответственно keyLabel нужно придать значение «А». Одной клавише можно задать несколько значений в атрибут codes, то клавиша будет принимать определенное значение из этих троих а зависимости от того, сколько раз мы нажали на клавишу (вспомните клавиатурный набор на старых мобильных — на одной клавише «а,б,в,г» и т.д.). Например, если мы зададим кнопке коды 63,33 и 58 то при одном нажатии получим символ «?», при двух нажатиях в короткой последовательности получим «!», а при троих нажатиях — двоеточие «:».

Еще по теме:  Кто рекламирует себя Вконтакте

Клавиша может иметь еще несколько атрибутов:

— keyEdgeFlags — атрибут может применять значение left или right. Эти атрибуты добавляются клавишам, которые расположены в самом левом или самом правом положении, соответственно;

— keyWidth — определяет ширину клавиши. Как правило задается в процентах;

— isRepeatable — если этот атрибут имеет значение true, то долгое нажатие на клавишу будет повторять ее действие несколько раз (например «аааааа»), как правило эту опцию включают для клавиш удаления, пробела и т.п.

Клавиши в клавиатуре сгруппированы в колонки. Довольно практично делать по 10 клавиш в колонке и каждой клавише отдавать 10% ширины от общей ширины клавиатуры. Мы выставим высоту клавиш равную 60dp. Можно ее изменять, но не рекомендуется делать высоту меньше 48dp. У нас будет 5 столбцов клавиш.

Переходим от теории к действию. Создаем файл res/layout/qwerty.xml. Файл должен содержать следующий код:

Некоторые клавиши могут иметь отрицательное значение атрибута codes, они эквиваленты встроенным константам в класс Keyboard. Например, значение -5 соответствует значению Keyboard.KEYCODE_DELETE.

Теперь создадим новый Java класс и назовем его IME.java. Он должен наследовать класс InputMethodService и выполнять интерфейс OnKeyboardActionListener. Этот интерфейс содержит методы, которые вызываются при нажатии на клавиши.

Класс IME должен иметь 3 типа переменных:

— KeyboardView — ссылающийся на вид, определенный в layout файле;

— Keyboard — применяет то, что было назначено в KeyboardView;

— boolean — сообщает о включенном caps lock-е.

Если проделать все сказанное, наш файл IME.java приобретает вид:

Когда клавиатура создана, вызывается метод onCreateInputView. Все переменные тега Service можно инициализировать прямо здесь в методе. Добавьте метод onCreateInputView:

Теперь нужно настроить проигрывание звука при нажатии на клавиши. Используем для этого класс AudioManager. Используем стандартные звуки в методе PlayClick. Код блока настройки звука:

private void playClick(int keyCode)< AudioManager am = (AudioManager)getSystemService(AUDIO_SERVICE); switch(keyCode)< case 32: am.playSoundEffect(AudioManager.

FX_KEYPRESS_SPACEBAR); break; case Keyboard.KEYCODE_DONE: case 10: am.playSoundEffect(AudioManager.

FX_KEYPRESS_RETURN); break; case Keyboard.KEYCODE_DELETE: am.playSoundEffect(AudioManager.FX_KEYPRESS_DELETE); break; default: am.

Теперь нам нужно настроить метод onKey для того, чтобы заставить нашу клавиатуру работать с полями ввода (как правило EditText) других приложений. Для этого используется метод getCurrenrInputConection. Здесь нужно настроить следующее:

— commitText — для добавления одного или больше символов в поле ввода;

— deleteSurroundingText — для удаления одного или более символов в поле ввода;

— sendKeyEvent — отослать событие, типа KEYCODE_ENTER, во внешнее приложение (любое где мы будем использовать нашу клавиатуру).

Каждый раз когда пользователь нажимает на клавишу на клавиатуре вызывается метод onKey, передавая уникальное значение (codes рассмотрено выше) нажатой клавиши. Учитывая значение принятого кода, клавиатура выполняет определенное действие, которое соответствует коду.

Приведите свой метод onKey к такому виду:

И вот наконец то все! Мы добили наш урок и клавиатура готова к тестированию. Стоит отметить, что так, как наша клавиатура не имеет никакого Activity (Add No Activity, помните?) то ее после установки на эмулятор или устройство не отобразит среди установленных программ. Все дружно идем в настройки — настройки ввода и клавиатуры и там активируем наше творение, как используемый (или один из используемых) метод ввода. Запускаем что либо, где нужно вводить текст, и тестим!

Оригинал этого руководства здесь.

Источник: learn-android.ru

Рейтинг
( Пока оценок нет )
Загрузка ...