На сегодняшний день социальная сеть «ВКонтакте» (далее – VK) является самой популярной в России, и в ней все больше распространяется технология применения так называемых ботов – профилей социальной сети, способных общаться с пользователем и самостоятельно и практически моментально формировать ответ на его сообщение. Боты активно используются группами VK различных известных компаний, таких как, например, «Coca-Cola», «Sprite», «KFC», «Burger King», «Durex» и т.д., чтобы рекламировать свою продукцию, а также обычными пользователями социальной сети не только в целях развлечения и приятного времяпровождения, но еще и, например, для получения различной необходимой им информации.
Вложение | Размер |
---|---|
konkurs_aleksandrov_izhevsk.docx | 133.89 КБ |
МАОУ «Гимназия №56»
«Создание бота для «ВКонтакте» на основе VK API»
Александров Владислав Алексеевич, 10 «Г»
Руководитель: Колесниченко Елена Владимировна
Ижевск, 2018
Оглавление
Загрузка клиентских (локальных) данных 6
Загрузка данных Long Poll сервера VK 7
На сегодняшний день социальная сеть «ВКонтакте» (далее – VK) является самой популярной в России, и в ней все больше распространяется технология применения так называемых ботов – профилей социальной сети, способных общаться с пользователем и самостоятельно и практически моментально формировать ответ на его сообщение. Боты активно используются группами VK различных известных компаний, таких как, например, «Coca-Cola», «Sprite», «KFC», «Burger King», «Durex» и т.д., чтобы рекламировать свою продукцию, а также обычными пользователями социальной сети не только в целях развлечения и приятного времяпровождения, но еще и, например, для получения различной необходимой им информации.
Бот (bot, сокращенно от чешского robot) – специальная программа, автоматически выполняющая какие-либо однообразные и повторяющиеся действия по заданному алгоритму. Бот работает на основе интерфейсов – совокупности специальных правил и методов взаимодействия двух систем.
Боты предназначены для выполнения каких-либо действий с максимальной скоростью и за кратчайший промежуток времени, и их возможности гораздо выше человеческих, именно поэтому боты используются там, где обычному человеку справиться гораздо сложнее.
Боты находят свое применение в различных сферах жизни человека:
Цель работы: разработка программ, способных взаимодействовать с реальным пользователем.
Задачи:
VK API (API – application programming interface, программный интерфейс приложения) – интерфейс взаимодействия между программой бота и сервером VK, предоставляемый самой соцсетью. Интерфейс состоит из библиотеки методов и основан на возможности посылать HTTP-запрос серверу в целях вызова какого-то определенного метода. В данном случае, чтобы исполнить какой-либо метод, необходимо послать HTTP-запрос на сервер VK API, в параметрах которого указать необходимый метод и ключ доступа пользователя.
Long Polling – технология, при которой клиент посылает запрос к серверу, но получает на него ответ не сразу, а к тому моменту, как произойдет какое-то определенное событие, либо по истечении заданного времени. После получения ответа клиент принимает входящие данные, затем обрывает соединение с сервером, формирует новое и так далее.
Созданный мною бот работает по следующему алгоритму:
Основной алгоритм программы
Сразу после загрузки данных происходит запуск бесконечного цикла. В этом цикле происходит получение и обработка данных с Long Poll сервера путем бесконечных следующих друг за другом HTTP-запросов по технологии Long Polling.
Сам запрос к Long Poll серверу выглядит так:
Где {$server} – DNS-адрес сервера,
{$key} – ключ сессии,
{$ts} – номер последнего произошедшего события.
(Все эти переменные были получены на втором этапе загрузки)
Также в запросе содержатся несколько опциональных переменных, необходимых для корректной работы сервера.
После того, как на сервере VK произойдет какое-то событие, связанное с профилем бота, Long Poll сервер отправит программе ответ в формате JSON, где передаст новый ts, который необходимо будет использовать при следующем запросе, и объект updates, который содержит данные о последних произошедших событиях.
Формат ответа с Long Poll сервера, который сообщает, что произошло новое событие с идентификатором 4 (т.е. новое входящее сообщение “Message”), и передает объект объектов updates, содержащий данные об этом событии, и поле ts с номером последнего события:
Далее происходит обработка нового события, переданного в объекте updates, и формируется ответ бота пользователю. Затем программа переходит к следующей итерации цикла, снова отправляет запрос к Long Poll серверу и получает ответ, и так далее.
В результате проделанной работы была разработана программа «Чат-бот» на языке Java, способная автоматически отвечать реальным пользователям по запросам и выполнять определенные команды.
Графический интерфейс программы
Команда «Помощь»
Команда «Переверни»
Команда «Посчитай»
Локальные данные бота
{
"MainData": {
"URL": "https://api.vk.com/method/",
"VERSION": 5.73,
"ACCESS_TOKEN": "70299b3bbf42cf946755252260b1cd2c0131432264e1bcdfa6098d39a501b3949545a661f84d3c56318f33",
"CALCULATOR_URL": "https://www.calcatraz.com/calculator/api",
"THREAD_SLEEP_TIME": 6000
},
"LongPoll": {
"WAIT_TIME": 90,
"MODE": 2,
"VERSION": 2
},
"CALLINGS": "бот, bot",
"Actions": {
"HELP": "помощь",
"REVERSE": "переверни",
"COUNT": "посчитай",
"SAY": "скажи",
"FIND_PHOTOS": "найди фото"
},
"Answers": {
"DONT_UNDERSTAND": "Не понимаю",
"HOW_TO_CALL_ME": "После обращения необходимо использовать одну из конструкций:
« »
«,»
«, »",
"ACTIONS_LIST": "Список доступных команд (Писать без кавычек):
Переверни «строка» - переворачивает строку;
Посчитай «выражение» - считает выражение;
Скажи «фраза» - сказать что-нибудь;
Найди фото «метка» - ищет фотографии с заданной меткой.
Чтобы получить дополнительную помощь, используйте: Помощь «команда».
Интервал между ответами бота: 6 секунд.",
"INCORRECT_MATH_EXPRESSION": "Неправильное математическое выражение. Чтобы получить помощь, используйте: Помощь Посчитай.",
"NUMBER_OF_PHOTOS_FOUND": "Найдено фотографий по запросу",
"NO_PHOTOS_FOUND": "Фотографий по данному запросу не найдено."
}
}
Серебряное копытце
В какой день недели родился Юрий Гагарин?
Упрямый зяблик
Астрономический календарь. Май, 2019
Интересные факты о мультфильме "Моана"