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

← К списку тем

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

Авторизуйтесь через Telegram, чтобы ответить.
Откройте бот @SiteAuthBot, нажмите кнопку Старт/Start. Следуйте инструкциям бота.


Ответы

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