Загрузка...

Как ловить 2 сообщение? VK API

Тема в разделе Backend создана пользователем Grudov777 23 сен 2022. (поднята 23 сен 2022) 252 просмотра

Загрузка...
  1. Grudov777
    Grudov777 Автор темы 23 сен 2022 капли капают 1 28 окт 2019
    Всем привет! Пишу бота на кнопках и столкнулся с проблемой ловли сообщения после нажатия пользователем на кнопку, бот сохраняет ТЕКСТ КНОПКИ, а не сообщение после кнопки.
    PHP
    if($payload['command'] == 'btn_7') {
    if($db->query("INSERT INTO tickets (message_id, user_id, message) VALUES ('$msg_id', '$user_id', '$message');")){
    $vk->msg('Ты выбрал цитату без фото. Отправь текст цитаты')->send();
    }
    }
    Как же сохранить следующее сообщение после нажатия кнопки пользователем?
     
  2. Leonchikkk
    Leonchikkk 7 окт 2022 107 20 июл 2019
    Смотри как я реализовал, для начала тебе нужно поле в котором ты хочешь сохранить.

    Делаешь нопку например редактировать. Затем эту кнопку обрабатываешь.

    У кнопки редактировать пайлоад к примеру редактирировать.

    Если пайлоад редактировать был передан то делаешт условие
    Редактируешь поле свое на Редактировать1 в базе

    Затем получаешь из бд значение поля.
    Делаешь условие, просто условие после message new.
    Если $message == $bdinfo
    То
    Апдейт запрос со значением $message.


    За пк буду подробно отпишу, с такой же библиотекой я работал.
    Тут нужно делать все в 2 этапа, по другому не получится
     
    7 окт 2022 Изменено
  3. danilasecret
    danilasecret 7 окт 2022 Заблокирован(а) 2 24 май 2022
    У метода send есть payload. Запакуй туда данные и раскрой в PHP
     
  4. Leonchikkk
    Leonchikkk 20 окт 2022 107 20 июл 2019
    Еще 1 метод, сегодня придумал. Метод заключается в том что, ты после передачи payload записываешь любое значение в txt, затем ты проверяешь сообщение на символы, и внутри этой же проверки ты проверяешь значение из txt, после того как выполнился скрипт, ты удаляешь файл. При нажатии допустим кнопку он опять создаться с нужным значением.
    PHP
        if ($payload == 'random_btn') {         
    $vk->sendButton($peer_id, "Добро пожаловать во вселенную где я могу ответить на твои вопросы.<br>Я искренне жду твой вопрос, к сожалению мой словарный запас ограничен<br>Я могу отвечать на вопросы со значением да/нет.", [[]]);
    $file = 'vopros.txt'; // Открываем файл для получения существующего содержимого
    $current = file_get_contents($file); // Добавляем значение в файл
    $current .= "Вопрос"; // Пишем содержимое обратно в файл
    file_put_contents($file, $current); fclose($file);
    }


    $file = 'vopros.txt'; // Открываем файл для получения существующего содержимого
    $content = file_get_contents($file); fclose($file);открываем файл для получения значения



    if (preg_match("/^([а-яА-ЯЁёa-zA-Z0-9_?\\s]+)$/u",$message)) {
    if ($content == "Вопрос") {
    $rand = rand(1, 6);
    if ($rand == "1") {
    $vk->sendButton($peer_id, "Да", [[]]);
    } elseif ($rand == "2") {
    $vk->sendButton($peer_id, "Нет", [[]]);
    } elseif ($rand == "3") {
    $vk->sendButton($peer_id, "Точно да", [[]]);
    } elseif ($rand == "4") {
    $vk->sendButton($peer_id, "Думаю нет", [[]]);
    } elseif ($rand == "5") {
    $vk->sendButton($peer_id, "Без сомнений", [[]]);
    } elseif ($rand == "6") {
    $vk->sendButton($peer_id, "Есть сомнения", [[]]);
    }
    unlink('vopros.txt');
    }
    }
    Как по мне проще всего использовать, базу.
     
    20 окт 2022 Изменено
  5. sdadsad12313333
    sdadsad12313333 25 окт 2022 Заблокирован(а) 12 573 8 сен 2019
    payload в сенде используй, это метод такой там есть
     
Top