Делаем автоответчик для ВК на РНР [БОТ]

  • Автор темы Автор темы .TRILF
  • Дата начала Дата начала
Безопасный и надёжный обменник криптовалют на наличные — Insight
Сообщения
7
Реакции
15
1) Нам нужен локальный сервер типо денвера или open server, или если у вас есть сервак, можете ставить туда, особо разницы нет.

2) Создали домен в локальном сервере, проверили, если все ок, продолжаем.

3) Создаем в этой папке файл core.php .Это будет как бы ядро, основа бота с основным функционалом. В файл помещаем следующий код:
Код:
<?

$db = mysql_connect("localhost", "stream", "stream") or die("Ошибка"); тут надо вписать данные для входа в базу вот так - хост , логин, пароль
mysql_select_db("stream", $db); //тут не трогать
// тут мы подключаемся к базе данных.

$token = '';
// тут нам нужно указать токен. как получить напишу ниже.

$request = file_get_contents("https://api.vk.com/method/messages.get?out=0&offset=0&filtres=0&last_message_id=0&count=10&v=5.34&access_token=".$token."");
//отправляем запрос на сервер вконтакта и получаем ответ
echo $request; // тут мы выводим ответ
$result = json_decode($request);
// в ответе мы получили json , нам нужно его декодировать

for($i=0;$i<=10;$i++) {
// тут мы создаем цикл. больше 10 ставить не надо, слишком долго грузить будет


    $message = $result->response->items[$i]->body;
    $user_id = $result->response->items[$i]->user_id;
    $id = $result->response->items[$i]->id;
    $chat_id = $result->response->items[$i]->chat_id;
    //в данном куске кода мы получаем тело сообщения, ид пользователя, ид сообщения и ид чата, если написали в чате

$word = '/((П|п)ривет)/i';
   if(preg_match($word, $message) == TRUE) { //ищем слово привет в нашем сообщениие
     $text = array('Привет', 'Хай', 'Хаюшки', 'Ку'); //набор ответов
     $rand = rand(0,3);
     $text = $text[$rand]; //рандомно берем ответ
     $send = send($text,$user_id,$chat_id,$token,$id); //отправляем ответ через функцию ниже
   }


}
// собственно функция отправки сообщения
function send($text,$user_id,$chat_id,$token,$id) {
   $query = mysql_query("SELECT * FROM `message` WHERE `message` = '".$id."'");
   $message = mysql_fetch_assoc($query);
   //делаем запрос в базу, если раньше не отвечали на сообщение, то ответим
   if(empty($message['id'])) {
     //отправляем сообщение
     if(empty($chat_id)) { //условие, если сообщение не в чате, то отправим его пользователю
       $request = file_get_contents("https://api.vk.com/method/messages.send?user_id=".urlencode($user_id)."&message=".urlencode($text)."&access_token=".$token."");
     }
     else { //условие, если сообщение не от пользователя лично, то отправим его в чат
       $request = file_get_contents("https://api.vk.com/method/messages.send?chat_id=".urlencode($chat_id)."&message=".urlencode($text)."&access_token=".$token."");
     }
     $query = mysql_query("INSERT INTO `message` (`message`) VALUES ('".$id."')");
// пишем в базу что отправили данное сообщение
   }

}


?>
С данным куском кода закончили. Далее подключаем базу
Создаем файл stream.sql и помещаем туда такой код
Код:
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;


CREATE TABLE IF NOT EXISTS `message` (
  `id` int(16) NOT NULL AUTO_INCREMENT,
  `message` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=316 ;

INSERT INTO `message` (`id`, `message`) VALUES
(1, '1');

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
2 способ - CRON . Если у вас сервер, можете через cron задать выполнение файла core.php раз в 5 секунд допустим.
3 способ - делфи. кидаем на форму браузер и через него уже открываем файл index.php. есть еще другой способ, но сложнее немного.

Теперь запускаем нашего бота и пишем ему сообщение, в котором есть "привет". Если ответил тогда все супер, я вас поздравляю, вы написали своего личного бота для вк.
 
kaspersky keys
Верх