← Вернуться к списку тем

Запрос e-mail адреса.

Подскажите, как запросить e-mail адрес Пользователя? А после введения - ответить.
Хорошо подробная инструкция, будет отправлена на почту - веденная почта ранее. И по возможности, минимально проверить введенные данные на валидность. Ну то есть. Бот спрашивает- укажите вашу электронную почту, пользователь вводит yrfuegeyvg - бот отвечает - Почта не валидна, в адресе - yrfuegeyvg нет символа @.

Ответы


  • iMakeBots [27.04.2020 в 12:52 → Alex Crowley]
    $token = "";
    $data = json_decode(file_get_contents('php://input'));
    // если это тип данных от telegram - message
    if ($data->message) {
        // если это старт бота предлагаем прислать email
        if ($data->message->text == "/start") {
            query("sendMessage", $token, ['chat_id' => $data->message->chat->id, 'text' => "Hello, send me you email"]);
        } else {
            // если это любое текстовое сообщение
            if($data->message->text) {
                // проверяем email на валидность
                if(filter_var($data->message->text, FILTER_VALIDATE_EMAIL)) {
                    // направляем email
                    // mail();
                    $text = "На указанную почту высланы инструкции";
                } else {
                    $text = "incorrect email";
                }
                // отправляем сообщение
                query("sendMessage", $token, ['chat_id' => $data->message->chat->id, 'text' => $text]);
            } else {
                // не текстовое сообщение
            }
        }
    } else {
        // не тип message
    }
    
    // отправляем данные
    function query($method, $token, $fields = array())
    {
        $ch = curl_init('https://api.telegram.org/bot' . $token . '/' . $method);
        curl_setopt_array($ch, array(
            CURLOPT_POST => count($fields),
            CURLOPT_POSTFIELDS => http_build_query($fields),
            CURLOPT_SSL_VERIFYPEER => 0,
            CURLOPT_RETURNTRANSFER => 1,
            CURLOPT_TIMEOUT => 10
        ));
        $r = json_decode(curl_exec($ch));
        curl_close($ch);
        return $r;
    }
  • Alex Crowley [27.04.2020 в 13:12 → iMakeBots]
    Спасибо тебе, добрый человек. Именно То, что нужно, дай Бог здоровья и развития форуму. Осталась, последняя нерешенная проблема. Как отправить, файл в формате .xlsx и docx. по запросу /getprice
  • iMakeBots [27.04.2020 в 13:14 → Alex Crowley]
    используйте sendDocument