За последние 24 часа нас посетили 22834 программиста и 1224 робота. Сейчас ищут 759 программистов ...

Как настроить бота в вк через Callback API?

Тема в разделе "PHP для новичков", создана пользователем FCSM, 11 апр 2017.

  1. FCSM

    FCSM Новичок

    С нами с:
    11 апр 2017
    Сообщения:
    9
    Симпатии:
    0
    Всех приветствую!

    Решил попробовать подключить бота в вк для ответа на сообщения в группе.
    Я в php не просветлённый, поэтому следовал инструкции из интернета.

    1) Создал токен
    2) Создал на хостинге ПХПшынй файл и закинул туда этот код
    PHP:
    1. <?php
    2. $confirmation_token = 'c0e26d59';
    3. $token = '42bbc6b599960c9cf798641696b70e60be1931fd57d1ad75f33a3b86ea700efeedca7db2be8580be643b8';
    4. $data = json_decode(file_get_contents('php://input'));
    5. switch ($data->type){
    6.     case 'confirmation':
    7.         echo $confirmation_token;
    8.         break;
    9.     case 'message_new':
    10.         $user_id = $data->object->user_id;
    11.         $user_info = json_decode(file_get_contents("https://api.vk.com/method/users.get?user_ids={$user_id}&v=5.0"));
    12.         $user_name = $user_info->response[0]->first_name;
    13.         $message = $data->object->body;
    14.         $messages_array = [
    15.             'Соощение 1' => "Ответ бота на сообщение",
    16.             'Сообщение 2' => "Ответ бота на сообщение",
    17.             'Сообщение 3' => "Ответ бота на сообщение"
    18.         ];
    19.         foreach($messages_array as $k => $v){
    20.             if($message == $k){$otwet = $v;}
    21.         }
    22.         $request_params = [
    23.             'message' => "Hello, {$user_name}!",
    24.             'user_id' => $user_id,
    25.             'access_token' => $token,
    26.             'v' => '5.0'
    27.         ];
    28.         $get_params = http_build_query($request_params);
    29.         file_get_contents('https://api.vk.com/method/messages.send?'. $get_params);
    30.         echo('ok');
    31.         break;
    32.         return false;
    33. }
    34. ?>
    В руководстве говорилось, что для подтверждения адреса сервера, на него будет направлен POST-запрос, содержащий JSON:
    PHP:
    1. {"type":"confirmation","group_id":144819215}
    И сервер должен вернуть эту строку
    PHP:
    1. c0e26d59
    В общем всё сделал как в руководстве, но бот не работает.

    Может быть проблема в том, что у меня не подключен SSL сертификат к хостингу ?
    Или я что-то не так сделал ?

    Благодарю за помощь.
     
  2. boy1998

    boy1998 Новичок

    С нами с:
    11 апр 2017
    Сообщения:
    27
    Симпатии:
    2
    Да, из-за сертификата, у меня точно такая же проблема была, но я решил.
    Сейчас занят другим делом, файлами с вопросами и ответами, чтоб в разных хранились. Тема чуть ниже твоей.
     
  3. FCSM

    FCSM Новичок

    С нами с:
    11 апр 2017
    Сообщения:
    9
    Симпатии:
    0
    А как решил? Подключил SSL к хостингу?
     
  4. boy1998

    boy1998 Новичок

    С нами с:
    11 апр 2017
    Сообщения:
    27
    Симпатии:
    2
    Да, но у меня при покупке хостинга уже был в подарок сертификат. И да там сказано, что нельзя использовать сапописный сертификат, как то так не помню точно.
    А ты какого бота собираешь делать ? За что он у тебя будет отвечать ? Может поделишься ссылкой.
    А то у меня появилась идея, а чтоб ее вон реализовать надо доп файлы подключать, ибо все в один файл писать это слишком много писать, ибо я насчитал более 1000строк)
     
  5. FCSM

    FCSM Новичок

    С нами с:
    11 апр 2017
    Сообщения:
    9
    Симпатии:
    0
    Спасибо за ответ ;)

    Да я собирался простого делать. Должен был на несколько запросов пользователя отвечать ( до 10 ).

    Держи, возможно пригодится. Нашел в интернете исходники - https://github.com/Detrous/uncle-sinbad
    А вот сам бот к этим исходникам - https://vk.com/id401533200
    Он много чего умеет. Там напиши ему в сообщения - " /помощь " , чтобы список команд узнать.
     
  6. acho

    acho Активный пользователь

    С нами с:
    28 дек 2016
    Сообщения:
    854
    Симпатии:
    210
    Адрес:
    Санкт-Петербург
    не в подарок, а просто бесплатный. Let's Encrypt.