Программа для создания ботов на андроид
Четыре месяца назад у меня появилась идея написать Telegram-бота, который будет запускаться не на внешнем сервере, как большинство ботов, а на мобильном телефоне.
Идея родилась не на пустом месте: я часто пропускал входящие звонки и СМС, когда телефон был в куртке или в кармане, поэтому мне нужен был дополнительный способ уведомлений. А так как я активно использую Telegram на компьютере, то подумал, что было бы не плохо, если бы входящие СМС и пропущенные звонки приходили в Telegram. Немного покопавшись, я решил написать бота.
Разработка прототипа
Я стал изучать тему создания Telegram ботов по официальной документации и по примерам. В основном все примеры были написаны на Python. Поэтому не долго думая, стал искать способы запуска Python сервера на Android. Но оценив время на изучение Python и не найдя ничего подходящего для запуска сервера, занялся поиском альтернатив и наткнулся на несколько библиотек на Java для написания Telegram ботов. В итоге остановился на проекте от Pengrad: java-telegram-bot-api.
Для того, чтобы сервис не убивался системой, когда устройство находится с выключенным экраном, при запуске сервиса, устанавливался WakeLock.
Позже, в целях безопасности, я добавил возможность привязки бота к разрешенным Telegram-аккаунтам и возможность запрета выполнения определенных команд для заданных пользователей.
Добавив несколько команд для бота, такие как: отправка, чтение СМС, просмотр пропущенных звонков, информация о батарее, определение местоположения и др., я опубликовал приложение в Google Play, создал темы на нескольких форумах, стал ждать комментарии и отзывы.
Пуш-нотификации отправлялись с помощью Google Firebase.
Генерация SSL сертификата
После нескольких часов, проведенных в попытках и поисках, получился скрипт, позволяющий сгенерировать нужный сертификат.
После запуска скрипта, на выходе получаем два файла: keystore.jks — используется на сервере, public_cert.pem — используется при установке webhook в Android приложении.
Чтобы установить webhook для бота, необходимо добавить в андроид-приложение следующие строки:
При регистрации webhook, в качестве URL указывается адрес webhook, затем передается пуш-токен, необходимый для отправки пуш-уведомлений и секретный ключ, генерируемый на устройстве, который я добавил для дополнительной проверки входящих уведомлений.
Функция чтения публичного сертификата из RAW ресурса:
Автоматическое создание бота
Добавление новых возможностей
После решения первостепенных проблем с автономностью, я занялся добавлением новых команд.
В итоге были добавлены такие команды как: фото, запись видео, диктофон, скриншот экрана, управление плеером, запуск избранных приложений и т.д. Для удобного запуска команд, добавил Telegram-клавиатуру и разбил команды по категориям.
Заключение
В этой статье я постарался поделиться краткой историей работы над проектом по созданию бота, работающего на Android устройстве и трудностями, с которыми я столкнулся. Сейчас я занимаюсь проектом в свободное от работы время, добавляю новые команды и исправляю возникающие ошибки.
Большое спасибо за внимание. Буду рад услышать от Вас полезные замечания и предложения.
Android Bot Maker
версия: 1.27
Последнее обновление программы в шапке: 10.12.2019
Для функционирования программы необходимы права root пользователя.
Краткое описание:
Инструмент автоматизации, который превратит ваше андроид-устройство в бота для выполнения повторяющихся задач.
Описание:
Возможности программы:
- Поддерживаются касания, долгий тап, текстовый ввод и физические клавиши управления.
- Отключение блокировки для предотвращения выключения экрана.
- Задержка запуска, дает необходимое времени, для того, чтобы сделать то, что вам нужно перед запуском виполнения.
- Экспорт/импорт ваших отредактированных файлов (в расширении .abm)
- Добавляйте, выбирайте, переключайте, изменяйте и удаляйте действия из списка.
- Экспортируйте их в скрипт, выполняемый из эмулятора терминала или через ADB.
- Добавляйте виджеты, чтобы выполнять предварительно созданные задания!
- Просматривайте свои файлы в приложении!
Полезные подсказки:
- Чтобы отредактировать задание, нужно сделать долгий тап по нему и задать требуемые значения.
- Чтобы выбрать действие просто нажмите на него.
- Чтобы поменять местами два, находящихся рядом действия, выберите их и нажмите кнопку «Поменять местами строки"
- Чтобы остановить выполнение в фоновом режиме просто тапните по уведомлению.
- Чтобы удалить элементы в файловом менеджере сделайте по ним долгий тап.
Переписываться любят все. Мессенджеры теперь повсюду, и скорее всего ваш клиент пользуется хотя бы одним из следующих:
- Facebook Messenger
- Skype
- LINE
- Slack
- QQ Mobile
- и множество других…
Станьте частью нового мира и воспользуйтесь чат ботом. Обслуживание, поддержка и восприятие ваших клиентов полностью изменятся.
Давайте разберемся, что же такое виртуальный собеседник или чат бот. Это программа, предназначенная для поддержания диалога с человеком через чат.
Можно обучить/настроить чат бота, чтобы он отвечал клиентам вместо вас. Чат бот может понять язык человека и сгенерировать логичный ответ.
Возможности для автоматизации с помощью чат бота весьма обширны, например:
- FAQ — c помощью чат бота можно настроить ответы на часто задаваемые вопросы;
- отслеживание доставки заказа — чат бот сможет ответить на вопросы о статусе заказа;
- электронная торговля — с помощью виртуального собеседника можно заинтересовать посетителя вашего сайта и превратить его в вашего клиента.
Платформы для создания ботов:
Morph.ai
Morph.ai позволяет создать виртуального собеседника за считанные минуты. Теперь поддержку и обслуживание ваших клиентов можно осуществлять через диалоговый интерфейс. Чат бот понимает естественный язык, отвечает кратко и по контексту, может обучаться.
- Facebook Messenger
- Slack
- Skype
- LINE
- SMS
Кроме всего прочего, Morph можно интегрировать в Shopify, Zendesk, Salesforce, Intercom, использовать с API, хуками, так что нет необходимости вручную экспортировать контакты или данные.
В целом конфигурация виртуального собеседника с помощью панели управления не вызывает затруднений, так что не медлите и приступайте к созданию вашего первого бота.
Flow XO
Flow XO позволяет вам создать и разместить чат бота для различных мессенджеров, в том числе Slack и Telegram. Для использования бота не требуются познания в программировании. Flow OX облегчает задачу интегрирования более чем с 90 сервисами:
Botsify
Botsify представляет возможность создания виртуального собеседника на 100 пользователей в месяц бесплатно. Если вас интересует только чат в Facebook, то стоит попробовать Botsify.
А как быть, если ваш сайт на WordPress? Для таких случаев на Botsify есть специальный плагин. Чтобы оценить пробный вариант, перейдите по ссылке.
Дизайном можете заниматься самостоятельно. Реализована возможность добавления изображений, аудио и других файлов. Доступна интеграция с Medium.
API.AI
При помощи Api.ai создание умного собеседника для Facebook осуществляется за три простых шага.
- Разработка — создайте бота;
- Подключение — настройте интеграцию с любым серверным приложением;
- Запуск — начало работы.
На сегодняшний день программа поддерживает 14 языков и может быть использована с:
- Slack
- Skype
- Cisco Spark
- Kik
- LINE
- Amazone Alexa
- Telegram
- Twilio IP/SMS
- Microsoft Cortana
- Agent Demo
Motion.ai
Приступить к работе можно бесплатно, предоставляется подробная документация.
Chatfuel
Виртуальный собеседник для Facebook будет готов всего за 7 минут и без необходимости в написании кода. Chatfuel пользуются такие гиганты, как UBER, TechCrunch и т.д.
Возможна интеграция с вашими самыми любимыми сервисами, например, Twitter, YouTube, JSON, Instagram и т.д.
Больше всего поражает подход к ценообразованию.
Платформа для создания чат бота совершенно бесплатная!
Здорово, не правда ли?
Manybot
Может быть ваша аудитория использует Telegram? C помощью Manybot вы сможете создать чат бота для Telegram, не написав ни одной строки кода.
Recast
Разработайте своего виртуального собеседника на Recast. Если вам необходимо, чтобы один чат бот действовал на разных платформах, то скорее всего Recast вас должен заинтересовать.
У вас никогда не возникало необходимости в том, чтобы ваш телефон или планшет в определенное время, без вашего участия самостоятельно выполнил какие-либо действия?
Если да, то приложение Android Bot Maker создано именно для вас. Оно умеет записывать ваши жесты, прикосновения к определенным точкам экрана, нажатие на клавиши, текстовый ввод и запускать их в заданное пользователем время.
Программа позволяет создавать различные файлы (макросы) со списками действий, импортировать и экспортировать их, а также запускать их на исполнение по мере необходимости.
Вы можете вводить время задержки между отдельными действиями. Действия в готовом списке событий можно редактировать, добавлять или удалять их.
Приложение умеет работать в фоновом режиме, и вы можете остановить его выполнение в любой момент, кликнув по ярлыку в панели уведомлений (опция меню настроек Show Notifications).
Android Bot Maker работает на любом устройстве с операционной системой Android 4.1 и выше, и что самое ценное в программе – делает всё вышеперечисленное она абсолютно бесплатно (правда, за счет показа рекламы). Единственное ограничение – вам потребуется наличие root прав.
Работать с программой очень просто. После запуска приложения вы сразу же можете начать запись макроса. Нажмите на плюс, чтобы добавить новое действие, выбрав его из списка. Вы можете добавить следующие операции: «Tap» - клик по экрану, «Swipe» - прокрутка экрана, «Key Press» - нажатие кнопки, «Text input» - ввод текста, и «Sleep» - задержка в секундах между операциями.
При редактировании списка вы можете менять строки местами, выбрав любые два действия, нажав на их порядковые номера и нажав на «Switch rows».
После того, как вы записали свой макрос, можете перейти к настройкам приложения, сдвинув его основной экран влево. Здесь вы найдете уже известную опцию показа значка в панели уведомлений «Show Notifications», включение режима запуска с задержкой «Delayed start», и режима работы без гашения экрана устройства «Use Wake Lock».
Программа работает отлично и единственное, чего в ней не хватает – это более простого способа для записи координат точек касания к экрану, просто определяя места касаний, вместо ввода их координат.
Выпил пива (и не только), вырубился, перед этим, вероятнее всего, разлил на себя тоже пиво ну и телефон отказался работать.
Вообще, телефонов у меня было много. Думаю что не у меня одного. Вот только покупал я себе самые простые. В первую очередь это для меня средство связи. Иногда нужен интернет. Почту, например, прочитать. Ну и все. Плюс долго они у меня не задерживаются. То разобью, то потеряю, то промочу. Если дал за телефон несколько сотен гривен, то не так обидно его терять, если бы дал за него несколько тысяч.
Тот, что купил тоже не очень дорогой (чуть больше 1000 гривен в магазине). Это, наверное, один из самых дешевых, учитывая эго возможности. Запихнули туда все, что можно, хотя и с минимальными параметрами.
Фото Samsung Galaxy Y S5360 (оригинальное 4800 x 1800 px):
В общем, пост не о моих телефонах и не о моем последнем приобретении. Так как я программист, первым делом после покупки и настройки девайса пошел в гугл искать информацию о программировании для Android.
До этого имел опыт программирования под Symbian OS 9.1 стоявшую на моей Nokia N73. Я, хоть и фанат C++, дальше Hello World не пошел. Пришлось осваивать Java. Так как это внук или правнук C++, особых проблем с освоением не возникло. И так на свет появилось несколько уровней «Klotski» под Symbian OS. Сделал примерно за день и это вместе с освоением неизвестного мне языка и системы.
Кстати о Nokia N73: покупал я его очень давно стоял он тогда где-то 3500 гривен, ну и одним прекрасным вечером я снова немного перебрал. Мимо проезжали стражи порядка, увидев меня решили остановиться и поболтать о том о сем. Из-за моей неадекватности, конструктивного диалога не получилось и было решено прокатить меня на машине к ближайшему упорному пункту. Перед тем как ехать один из них попросил у меня телефон, чтобы позвонить. Больше я телефон не видел. Покупался он конечно за не малые деньги, но радует то, что я им пользовался много лет ну и что его цена за это время существенно упала. Та и состояние у него было не на пять с плюсом.
Вернемся к сути поста, а именно к Android OS.
Запустите SDK Manager. Вы увидите список компонентов, которые можно загрузить через интернет. В колонке «Status» указано, установлен компонент или нет и есть ли для него обновление.
В идеале нужно установить все флажки и нажать на кнопку «Install package» и тем самым загрузить и установить все существующие компоненты. Учтите, что это займет очень много времени, так как качать придется не один гигабайт информации. Если у вас быстрый интернет и нет ограничений в трафике тогда все норм, в противном случае я бы рекомендовал вам обновить установленные компоненты и установить платформу, для которой вы собираетесь компилировать программы. Я выбрал Android 2.2 (API 8). Для установки только платформы без примеров и дополнительных API необходимо установить флажок «SDK Platform».
После загрузки и установки необходимых вам компонентов нужно создать Android Virtual Device (AVD), эмулятор смартфонов с которым будет работать Eclipse. Запускаем среду, открываем меню «Window» и выбираем пункт «Android Virtual Deviсe Manager». В появившемся диалоге на вкладке «Android Virtual Deviсe» нажимаем кнопку «New» после чего появится еще один диалог. В поле «AVD Name» вводим имя устройства на ваше усмотрение. Оно может состоять из произвольного набора символов. В выпадающем списке «Deviсe» выбираем желаемое устройство. Основное их отличие это размер экрана. Честно говоря, не знаю, чем они еще отличаются. В списке «Target» можно выбрать одну из установленных платформ. Еще можно установить размер «SD Card», например, 512 MiB. После чего жмем кнопку «Ok» и закрываем диалог «Android Virtual Deviсe Manager».
Теперь можно создавать приложения и тестировать на своем компьютере. Согласитесь, что подключать устройство для каждого тестового запуска программы менее удобно. Да и не у всех есть такое устройство. Кстати, перед релизом все-таки нужно будет протестировать программу на устройстве, так как тесты в эмуляторе и непосредственно на конечном устройстве естественно имеют существенные отличия. К примеру, в эмуляторе вы не сможете в полной мере протестировать обработку сенсорного управления.
Так как основная моя специализация это написание различных ботов было решено написать для Android простой бот. Думаю что большинству извесно что Android построен на Linux, а браузер эго на WebKit который и будет использоватся программой в качестве движка. Программа будет иметь кнопку, текстовое поле и пространство для отображения страниц. После ввода в текстовое поле поискового запроса и нажатия на кнопку программа перейдет на Яндекс затем с помощью JavaScript введет поисковую фразу и отправит форму для поиска. Приступ.
Нажимаем «File» > «New» > «Android Application Project» откроется мастер создания проекта.
Application name - это название программы, которое будет отображаться в списке программ на смартфоне.
Project Name – имя проекта, которое будет отображаться в списке проектов в Eclipse
Package name – префикс для классов проекта. Я использую com.zmax.androidbot. после первой точки название фирмы (если ее нет, можете написать, к примеру, свой ник). После второй точки название проекта.
Minimum Required SDK – минимальная версия Android на которой будет работать программа.
Target SDK – максимальная версия Android на которой тестируется приложение.
Compile With – возможности какой версии будут доступны программе.
Везде выбираем Android 2.2 (Froyo). В общем, то что вы скачали.
Theme – выбираем None.
Оставляем два флажка: Create Activity и Create Project in Workspace.
Так как на следующих диалогах ничего менять не нужно, можно сразу нажимать Finish. Проект успешно создан.
Теперь необходимо добавить элементы управления. Это можно сделать в визуальном редакторе или за счет редактирования activity_main.xml. Нужно написать следующее:
xmlns:tools = "httр://schemas.android.com/tools"
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:paddingBottom = "@dimen/activity_vertical_margin"
android:paddingLeft = "@dimen/activity_horizontal_margin"
android:paddingRight = "@dimen/activity_horizontal_margin"
android:paddingTop = "@dimen/activity_vertical_margin"
tools:context = ".MainActivity" >
android:id = "@+id/editText1"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_alignParentLeft = "true"
android:layout_alignParentTop = "true"
android:ems = "10"
android:text = ""ZMax Home Industry"" />
android:id = "@+id/button1"
style = "?android:attr/buttonStyleSmall"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_alignBaseline = "@+id/editText1"
android:layout_alignBottom = "@+id/editText1"
android:layout_alignParentRight = "true"
android:layout_marginRight = "17dp"
android:text = "Search" />
android:id = "@+id/webView1"
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:layout_alignLeft = "@+id/editText1"
android:layout_below = "@+id/editText1"
android:layout_marginTop = "18dp" />
В AndroidManifest.xml нужно дописать:
Ну, вот и все! Программа готова для запуска в эмуляторе или на устройстве с Android 2.2 либо выше.
Вот так выглядит в эмуляторе, после загрузки Яндекса и выполнения скрипта
Проект положил в архив. Качать тут. В папке «bin» есть откомпилированная программа готовая для установки на устройство.
Так как это мой первый проект под Android, та и один из первых на Java, код и программа довольно таки сыроваты. Не знаю почему, сначала программа у меня не работала. Переходила на Яндекс но не вводила запрос. Как мне кажется, особых изменений в код я не вносил, но в один прекрасный момент она заработала. Еще один глюк: если изменить положение телефона, страница исчезает с экрана. Также хз, от чего и почему.
Ну, в общем, система меня заинтересовала. Думаю над каким-то серьезным проектом. Если сделаю программу или узнаю что-то интересное о Android, тогда напишу пост.
Читайте также: