Форма обратной связи с отправкой письма в Телеграм. Отправка формы в телеграм

В новой записи я вам расскажу как создать форму обратной связи с отправкой письма в телеграмм. Для отправки письма мы будем использовать стандартные методы API от Telegram. Подробную информацию о методах вы можете посмотреть в официальной документации Telegram

Вы можете получить готовый скрипт здесь – https://prog-time.ru/telegram_integration/

Для того чтобы отправить письмо в телеграмм, нам необходимо сделать несколько последовательных действий.

1) Вам нужно авторизоваться в Telegram аккаунте

2) В поиске найти пользователя @BotFather

3) Отправить сообщение боту – /newbot

4) После отправки запроса , нужно указать имя бота (на английском языке)

5) После этого дублировать название бота, но только суффиксом _bot

6) После успешной регистрации бота, @BotFather пришлёт вам сообщение с токеном, который вам нужно сохранить, в дальнейшем он нам понадобится.

7) Теперь нам нужно создать чат в который мы добавим нашего бота

8) Далее нам нужно получить id нашего бота. Для этого нужно перейти по следующей ссылке, где за место символов X нужно подставить ваш токен:
https://api.telegram.org/botXXXXXXXXXXXXXXXXXX/getUpdates
Не закрывайте эту страницу, после 9 пункта, её нужно будет обновить.

9) Теперь вам необходимо отправить команду /join в чат для активации бота. После отправки команды, вам нужно обновить страницу, чтобы сделать повторный запрос.

Здесь вам нужно записать следующий фрагмент кода – id вашего бота. Эту информацию тоже нужно записать.

Вам нужен id со знаком минус.

"my_chat_member":{"chat":{"id":-594377170, ...

Теперь вам нужно создать форму обратной связи и отправить полученные данные по следующему URL:
https://api.telegram.org/bot<token>/sendMessage?chat_id=<ID чата>&text=<text>

Для отправки запроса, воспользуемся библиотекой Curl. Информацию по использованию данной библиотеке, вы можете получить в следующей записи – https://prog-time.ru/parsing-php-biblioteka-curl/

Создаём форму

HTML

Для примера я создал самую простую форму из 3 полей и кнопки. В качестве обработчика использую файл sendTelegram.php

<form class="myForm" method="POST" action="sendTelegram.php">
  <input name="name" type="text" >
  <input name="email" type="email" >
  <input name="phone" type="phone" >
  <input value="Отправить" name="butSub" type="submit" >
</form>

Для примера давайте создадим простую форму из 3 полей: имя, email, телефон.

PHP

/*получаем значения полей из формы*/
$name = $_POST['name'];
$phone = $_POST['phone'];
$email = $_POST['email'];

/*функция для создания запроса на сервер Telegram */
function parser($url){
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $result = curl_exec($curl);
    if($result == false){     
      echo "Ошибка отправки запроса: " . curl_error($curl);
      return false;
    }
    else{
      return true;
    }
}

/*собираем сообщение*/
$message .= "Новое сообщение из формы";
$message .= "Имя: ".$name;
$message .= "Телефон:".$phone;
$message .= "Email:".$email;

/*токен который выдаётся при регистрации бота */
$token = "1724061264:AAHTshrcn33459712fdsf2zM-bDviT-QgF0tAM";
/*идентификатор группы*/
$chat_id = "-594377134470";
/*делаем запрос и отправляем сообщение*/
parser("https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text={$message}");

Новый вариант кода

/* ОТПРАВКА ПИСЬМА ЗАКАЗА В TELEGRAM */
/*функция для создания запроса на сервер Telegram */
function parser($url){
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $result = curl_exec($curl);
    if($result == false){     
      echo "Ошибка отправки запроса: " . curl_error($curl);
      return false;
    }
    else{
      return true;
    }
}

function orderSendTelegram($message) {

    /*токен который выдаётся при регистрации бота */
    $token = "1616052093:AAGZ5vsK12RTT92jj2yHaZ4tZIUB_8N-tY";
    /*идентификатор группы*/
    $chat_id = "-435154116";

    /*делаем запрос*/
    parser("https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text={$message}");

}
На этом всё!
Больше интересных статей в нашей группе - https://vk.com/progtime
Вы так же можете разместить свой вопрос на нашем форуме, где другие программисты смогут вам помочь в решение вашей задачи - https://vk.com/prog_time
Так же прокачивайте свои навыки на нашем канале - https://www.youtube.com/c/ProgTime