Перейти к содержимому

Как сделать своего бота в вк php

  • автор:

Создание бота Вк на языке PHP — уроки API Вк

Создание бота Вк на языке PHP - уроки API Вк

Боты стали новой эпохой в соц сетях и мессенджерах. Мы расскажем как создать настоящего бота на PHP, используя API социальной сети Вконтакте.

Для создание ботов в социальной сети Вконтакте нужно несколько вещей:

  1. Специальный standalone token ;
  2. Токен вашей группы;
  3. Сам скрипт с ботом;
  4. Группа с подключенным сервером и API.

Получение токена

Первым делом необходимо получить standalone token вместе с токеном вашей группы. Для этого переходим в раздел для разработчиков и в » Мои приложения «. Здесь создаем новое приложение. Название приложения можете выбрать любым, главное чтобы оно было Standalone-приложение.

Включите Open API после создания приложения. В него пропишите сайт, с которым будет связано ваше приложение, а также базовый домен. В нашем случае это itProger.com .

После этого необходимо перейти по этой ссылке . Также вы её видите ниже:

https://oauth.vk.com/authorize?client_id=6678654&display=page&redirect_uri=https://oauth.vk.com/blank.html&scope=friends,photos,audio,video,status,messages,wall,groups,offline,stats,email&response_type=token&v=5.63

Единственное, вам необходимо изменить client_id и установить чтобы оно было равным ID вашего приложения.

Далее вы нажимаете на кнопку Разрешить и после этого получаете токен, который будет записан в ссылке. Копируете токен от знака равенства ( = ) и до амперсанда ( & ).

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

Создание самого бота

Для создания бота нам понадобиться три файла:

  • config — файл служащий исключительно для нас. В нем мы запишем различные настройки и данные, которые сможем в дальнейшем использовать в других файлах;
  • photos — файл для обработки альбома. В этом файле мы будем обрабатывать альбом, получать из него все изображение и записывать их в новый txt файл в специальном формате, который в дальнейшем будем передавать в качестве прикрепленного изображения к сообщению;
  • bot — основной файл с ботом. Здесь мы прописываем обработку данных от пользователя, а также передачу сообщений от бота к пользователю Вконтакте.

Ниже представлены эти три файла. Они полностью готовы и с рабочим кодом. Детальное описание всего что в них происходит вы можете получить из видео.

$album = 'https://vk.com/album-113958919_252151167'; $res = parse_url($album); $path = substr($res['path'], 6); $arr = explode('_', $path); $owner_id = $arr[0]; $album_id = $arr[1]; $standalone = "ваш standalone токен приложения"; $group_token = 'ваш токен группы'; $conf = [ 'standalone' => $standalone, 'group_token' => $group_token, 'contorm_token' => 'eae5d4a2', 'mess' => 'Фото в студио', 'not_command' => 'Ничего не понял!', 'owner_id' => $owner_id, 'album_id' => $album_id, 'group_id' => '170785666', 'apiurl' => 'https://api.vk.com/method/', 'path' => substr($_SERVER['PHP_SELF'], 0, -2), 'photos' => 'photos.txt', 'temp_link' => 'temp_album.txt', 'random_id' => mt_rand(0000000000, 999999999999), 'v' => '5.50' ];
unlink($conf["photos"]); $query = file_get_contents($conf['apiurl'].'photos.get?owner_id='.$conf['owner_id'].'&album_id='.$conf['album_id'].'&v='.$conf['v'].'&access_token='.$conf['standalone']); $res = json_decode($query, true); foreach($res as $v) < foreach($v['items'] as $q) < $result = 'photo'.$q['owner_id'].'_'.$q['id']; file_put_contents($conf['photos'], $result."\n", FILE_APPEND | LOCK_EX); >>
require "config.php"; $data = json_decode(file_get_contents('php://input')); $u_id = $data->object->user_id; $mess = $data->object->body; $user_info = json_decode(file_get_contents($conf['apiurl'].'users.get?user_id='.$u_id.'&v='.$conf['v'].'&access_token='.$conf['standalone'])); $user_name = $user_info->response[0]->first_name; $temp_link = file($conf['temp_link']); if($temp_link[0] != $album) < file_put_contents($conf['temp_link'], $album); require "photos.php"; return true; >switch($data->type) < case 'confirmation': echo $conf['contorm_token']; break; case "message_new": if($mess == $conf['mess']) < $file = file_get_contents($conf['photos']); $photos_all = explode("\n", $file); $myCurl = curl_init(); curl_setopt_array($myCurl, array( CURLOPT_URL =>$conf['apiurl'].'messages.send?user_id='.$u_id.'&group_id='.$conf['group_id'].'&attachment='.$photos_all[mt_rand(0, count($photos_all) - 1)].'&message='.urlencode('Держи свое фото').'&v='.$conf['v'].'&access_token='.$conf['standalone'], CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => http_build_query(array()) )); $response = curl_exec($myCurl); curl_close($myCurl); > else < $myCurl = curl_init(); curl_setopt_array($myCurl, array( CURLOPT_URL =>$conf['apiurl'].'messages.send?user_id='.$u_id.'&group_id='.$conf['group_id'].'&message='.urlencode($conf['not_command']).'&v='.$conf['v'].'&access_token='.$conf['standalone'], CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => http_build_query(array()) )); $response = curl_exec($myCurl); curl_close($myCurl); > echo 'ok'; break; >

Детальное описание создания бота на языке PHP под систему Вконтакте:

Последнее что необходимо будет сделать, так это прописать URL адрес скрипта bot.php в группе, в настройках API:

После этого можете написать сообщение в группу и бот будет вам отвечать. Напишите «Фото в студио» и бот пришлет вам случайную фотографию из альбома.

Больше интересных новостей

Какие языки программирования самые высокооплачиваемые на 2022 год: ТОП

Какие языки программирования самые высокооплачиваемые на 2022 год: ТОП

Путь к чистому и понятному коду: Что такое рефакторинг

Путь к чистому и понятному коду: Что такое рефакторинг

Что такое квантовый компьютер, и как он работает?

Что такое квантовый компьютер, и как он работает?

Как сделать своего бота в вк php

Статистика

Обновления new

Комментарии

Настройка своего VDS на Linux для размещения бота

Подробная инструкция по установке и настройке OLS и результаты тестирования для Debian/Ubuntu —

Часто задаваемые вопросы

Информация

Нашли ошибку?
Вы можете сообщить об этом администрации.
Выделив текст нажмите CTRL+Enter

Copyright © ScriptHub 2019-2019. All right reserved.
ScriptHub.ru Сommunity.

Создание бота Вк на языке PHP — уроки API Вк

Боты стали новой эпохой в соц сетях и мессенджерах. Мы расскажем как создать настоящего бота на PHP, используя API социальной сети Вконтакте.

Для создание ботов в социальной сети Вконтакте нужно несколько вещей:

  1. Специальный standalone token ;
  2. Токен вашей группы;
  3. Сам скрипт с ботом;
  4. Группа с подключенным сервером и API.

Получение токена

Первым делом необходимо получить standalone token вместе с токеном вашей группы. Для этого переходим в раздел для разработчиков и в « Мои приложения«. Здесь создаем новое приложение. Название приложения можете выбрать любым, главное чтобы оно было Standalone-приложение.

Включите Open API после создания приложения. В него пропишите сайт, с которым будет связано ваше приложение, а также базовый домен.

https://oauth.vk.com/authorize?client_id=6678654&display=page&redirect_uri=https://oauth.vk.com/blank.html&scope=friends,photos,audio,video,status,messages,wall,groups,offline,stats,email&response_type=token&v=5.63

Единственное, вам необходимо изменить client_id и установить чтобы оно было равным ID вашего приложения.

Далее вы нажимаете на кнопку Разрешить и после этого получаете токен, который будет записан в ссылке. Копируете токен от знака равенства ( = ) и до амперсанда ( & ).

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

Создание самого бота

Для создания бота нам понадобиться три файла:

  • config — файл служащий исключительно для нас. В нем мы запишем различные настройки и данные, которые сможем в дальнейшем использовать в других файлах;
  • photos — файл для обработки альбома. В этом файле мы будем обрабатывать альбом, получать из него все изображение и записывать их в новый txt файл в специальном формате, который в дальнейшем будем передавать в качестве прикрепленного изображения к сообщению;
  • bot — основной файл с ботом. Здесь мы прописываем обработку данных от пользователя, а также передачу сообщений от бота к пользователю Вконтакте.

Ниже представлены эти три файла. Они полностью готовы и с рабочим кодом. Детальное описание всего что в них происходит вы можете получить из видео.

$album = 'https://vk.com/album-113958919_252151167'; $res = parse_url($album); $path = substr($res['path'], 6); $arr = explode('_', $path); $owner_id = $arr[0]; $album_id = $arr[1]; $standalone = "ваш standalone токен приложения"; $group_token = 'ваш токен группы'; $conf = [ 'standalone' => $standalone, 'group_token' => $group_token, 'contorm_token' => 'eae5d4a2', 'mess' => 'Фото в студио', 'not_command' => 'Ничего не понял!', 'owner_id' => $owner_id, 'album_id' => $album_id, 'group_id' => '170785666', 'apiurl' => 'https://api.vk.com/method/', 'path' => substr($_SERVER['PHP_SELF'], 0, -2), 'photos' => 'photos.txt', 'temp_link' => 'temp_album.txt', 'random_id' => mt_rand(0000000000, 999999999999), 'v' => '5.50' ];
unlink($conf["photos"]); $query = file_get_contents($conf['apiurl'].'photos.get?owner_id='.$conf['owner_id'].'&album_id='.$conf['album_id'].'&v='.$conf['v'].'&access_token='.$conf['standalone']); $res = json_decode($query, true); foreach($res as $v) < foreach($v['items'] as $q) < $result = 'photo'.$q['owner_id'].'_'.$q['id']; file_put_contents($conf['photos'], $result."\n", FILE_APPEND | LOCK_EX); >>
require "config.php"; $data = json_decode(file_get_contents('php://input')); $u_id = $data->object->user_id; $mess = $data->object->body; $user_info = json_decode(file_get_contents($conf['apiurl'].'users.get?user_id='.$u_id.'&v='.$conf['v'].'&access_token='.$conf['standalone'])); $user_name = $user_info->response[0]->first_name; $temp_link = file($conf['temp_link']); if($temp_link[0] != $album) < file_put_contents($conf['temp_link'], $album); require "photos.php"; return true; >switch($data->type) < case 'confirmation': echo $conf['contorm_token']; break; case "message_new": if($mess == $conf['mess']) < $file = file_get_contents($conf['photos']); $photos_all = explode("\n", $file); $myCurl = curl_init(); curl_setopt_array($myCurl, array( CURLOPT_URL =>$conf['apiurl'].'messages.send?user_id='.$u_id.'&group_id='.$conf['group_id'].'&attachment='.$photos_all[mt_rand(0, count($photos_all) - 1)].'&message='.urlencode('Держи свое фото').'&v='.$conf['v'].'&access_token='.$conf['standalone'], CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => http_build_query(array()) )); $response = curl_exec($myCurl); curl_close($myCurl); > else < $myCurl = curl_init(); curl_setopt_array($myCurl, array( CURLOPT_URL =>$conf['apiurl'].'messages.send?user_id='.$u_id.'&group_id='.$conf['group_id'].'&message='.urlencode($conf['not_command']).'&v='.$conf['v'].'&access_token='.$conf['standalone'], CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => http_build_query(array()) )); $response = curl_exec($myCurl); curl_close($myCurl); > echo 'ok'; break; >

После этого можете написать сообщение в группу и бот будет вам отвечать. Напишите «Фото в студио» и бот пришлет вам случайную фотографию из альбома.

Инструкция по разработке бота ВКонтакте

Еще несколько лет назад о ботах знали только IT-специалисты: программисты, специалисты по информационным технологиям, администраторы баз данных, системные архитекторы, системные аналитики и другие. Сегодня ситуация в корне изменилась, и о ботах знают практически все.

Для этого есть много веских причин. Боты во ВКонтакте – незаменимые помощники как в ведении бизнеса, так и в работе информационных публичных страниц, сообществ и групп.

С чего начать?

Для начала нужно определиться с назначением бота. Затем необходимо выбрать способ его «получения». Существует несколько вариантов:

  1. Заказать независимой компании-разработчику. Этот вариант поможет получить бота именно с тем функционалом, который вам необходим, но потребует вложений. Впрочем, разработка бота не будет стоить слишком дорого, в отличие, например, от мобильного приложения.
  2. Воспользоваться конструктором. Этот вариант позволит создать бота как без вложений, так с оплатой – чаще всего по подписке. Но его функционал будет ограничен возможностями конструктора.
  3. Написать бота самостоятельно. Это лучший вариант, но он потребует терпения, времени и определенных знаний.

Ниже рассмотрим преимущества и недостатки этих вариантов более подробно.

Способы создания бота

Заказать независимой компании-разработчику

Тут особенно рассматривать нечего. Выбираете компанию, озвучиваете им желаемый функционал и обсуждаете бюджет и детали.

Воспользоваться конструктором

Для создания бота с помощью конструктора не нужно обладать специальными навыками. Достаточно выбрать подходящий по цене и функционалу. Вот несколько конструкторов, позволяющих создать бота для ВКонтакте:

  • Aimylogic – есть возможность создать бота бесплатно или по подписке от 5700 рублей в месяц;
  • Bot Kits – цена начинается от 499 в месяц. Поддерживаются автоматические рассылки знакомым боту пользователям. Доступны модули оплаты, бронирования. Умеет обрабатывать голосовые сообщения;
  • Botmother – первого бота можно создать бесплатно – дальше от 799 рублей в месяц. Для создания бота необходимо соединять между собой компоненты. Соединение происходит простым перетаскиванием нужных в окно бота. Компоненты есть как бесплатные, так и платные (в основном, модули, связанные с оплатой и бронированием);
  • Chatgun – стоимость использования начинается от 390 рублей в месяц. Умеет работать с медиафайлами и в беседах. Умеет собирать данные пользователей.
  • robochat.io – доступен бесплатный и платный функционал. Расценки начинаются от 399 рублей в месяц. Умеет переводить деньги, работать с купонами и скидками. Можно создать ботов разных направлений: развлечения, автоматизация процессов и информационного.

Это, конечно, неполный список конструкторов. Подобрать в сети подходящий для себя конструктор можно без особого труда, если у вас нет специфических задач. А пока давайте бегло посмотрим, насколько тяжело создать бота в конструкторе. Для примера возьмем Botmother.

Регистрируемся. На почту приходит ссылка, перейдя по которой уже можно приступать к созданию бота. Сразу предлагают посмотреть тарифы.

Первого бота мы можем создать бесплатно – воспользуемся этой возможностью.

Выбираем то что нужно и перетаскиваем мышкой в окно бота.

Компонуем, настраиваем и так далее. Заполняем поля и нажимаем сохранить. В общем, ничего сложного.

Однако, в бесплатной версии нам доступны не все возможности. За самые крутые все же придется заплатить.

Разобраться можно за один вечер – никаких навыков программирования не потребуется.

Самостоятельная разработка

Благодаря API Vk возможность разработать своего бота доступна каждому желающему. Реализовать это можно с использованием огромного перечня языков программирования – от ориентированного на web-разработку PHP до высокоуровневого Python. Кроме этого, для создания бота подходят такие языки как:

Для этого выделен специальный раздел на сайте. Чтобы попасть в него, на главной странице нужно выбрать «Разработчикам», а затем «Продукты» и на этой странице найти ссылку «Чат-боты». Там же размещены ссылки на документацию, поддержку, баг-трекер и многое другое.

Что такое token (или API ключ) и для чего он нужен

Ключ доступа необходим для получения обновлений (в Long Poll), кроме этого, он нужен для работы с API.

Для его получения необходимо зайти в раздел «Управление сообществом» или «Управление страницей». После этого пройти по ссылке «Работа с API» и там выбрать вкладку «Создать ключ доступа». Доступна возможность создания сразу нескольких ключей с разделением по правам доступа. Ключи нужно надежно сохранить, для того, чтобы они не попали в чужие руки. Кроме этого, доступен относительно новый способ получения ключа, с использованием авторизации с помощью Authorization Code Flow

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *