Бот Telegram для обратной связи с сайта
Для gusevgroup.ru потребовалась форма обратной связи. 
E-mail'ы, очень не оперативны, если не жду, какое-нибудь письмо, могу в ящик по недели не заглядывать. А как загляну, требуется минимум 15 минут, для сортировки всей почты.

Как вариант хранить сообщения в БД на сайте, но здесь то же не совсем оперативно. Будем отправлять сообщения в мессенджер Telegram, из которого мы сразу сможем ответить. Отвечать будем на E-mail, так как предположим, что пользователь будет ждать ответа)

Вытащил из своих ботов основу, назовем её GCBot. 
Нам потребуется несколько файлов:
GCBot.php - все логика и возможно популярные функции
config.php - конфигурация, данные от базы, команды по умолчанию и т.д.
commands.php - класс с командами
lang.php - будем там хранить сообщения на разных языках и для разных мессенджеров
tg.php - сюда будут приходить запросы от Telegram
vk.php - сюда будут приходить запросы от VK

Да, эта штука будет универсальная, а обновляться будет только GCBot.php, остальные пользовательские файлы, только в редких случаях.
Ниже рассмотрим создания бота только для Telegram, для VK потом, на другом примере.

Cо стороны Telegram, добавляем @BotFather, следуя его инструкции создаем бота.
В итоге он пришлет сообщения с токеном вида: 123465:xxxyyy
Копируем токен, вставляем в config.php в $tokenTG, но перед токеном написать "bot", должно получиться так:
public $tokenTG = 'bot123465:xxxyyy';

Далее, нам нужно указать на какой адрес обращаться боту. В итоговом сообщении будет ссылка на документацию Bot API, нам нужен метод setWebhook, на его Telegram будет отправлять запросы, когда кто-нибудь напишет боту сообщение.
В GCBot в качестве проверки безопасности будет ожидать GET параметр key, который мы указываем в tg.php, пускай он будет 987
Итоговая ссылка к Bot API будет следущего вида:
https://api.telegram.org/bot123456:xxxyyy/setWebhook?url=https://site.ru/bot/tg.php?key=987
В которой так же содержится наш токен с приставкой "bot".
После перехода по этой ссылки, должны получить такое сообщение:
{"ok":true,"result":true,"description":"Webhook was set"}

Первая задача:
Пользователь пишет сообщение в текстовом поле на сайте, так же указывает свое имя и E-mail, по кнопке отправить оно должно прийти в Telegram.
Перейдем сразу к формированию данных: на первой строке имя, на второй E-mail, а на 3 и ниже текст.
$msg = $params['name'] . "⁄n" . $params['email'] . "⁄n" . $params['text'];

Теперь нам нужна функция отправки сообщения, идем за ней в GCBot.php и копируем содержание функции sendTG
Так же нужен токен и идентификатор нашего чата с ботом. Пора добавиться к нашему боту, если все правильно сделано, на вашу команду /start, он должен ответить: 
More information about GCBot can be found on http://gusevcore.ru
Это выполнилась команда /help, которая в конфигурации указана по умолчанию.
Подправим команду /help, что бы узнать id беседы
public function help() {
     GLOBAL $GCBot;

     send('Chat id: ' . $GCBot -> user['id']);
}
Копируем пришедший нам id(для примера пусть будет 666), и соберем функцию воедино. 
$api_url = 'https://api.telegram.org/bot123456:xxxyyy/';
$sendto = $api_url . 'sendmessage?chat_id=666&text=' . urlencode($msg);
file_get_contents($sendto);
Отлично, сообщения приходят.

Вторая задача:
Нам необходим ответ на эти сообщения.
Отвечать мы будем через Reply, что бы бот знал, на какое сообщение мы отвечаем и мог достать из него E-mail.
Так как это будет не команда, а обычный текст, изменим команду по умолчанию в config.php на reply $default_command = 'reply';

В commands.php создаем публичную функцию reply. В этом же файле есть массив $commands, если это была бы команда, в него необходимо добавить ключи, по которым будет определяться функция.
Нам нужно добыть E-mail из сообщения на которое мы ответили.
В GLOBAL указываем $response, именно там хранится все что нам нужно, а точнее $response['message']['reply_to_message']['text'], разбиваем строку по переносам и берем вторую(1)
$email = explode("⁄n", $response['message']['reply_to_message']['text'])[1];
E-mail есть, текст нашего ответа пришел в первом(0) аргументе к функции reply, осталось отправить письмо.
public function reply($msg) {
     GLOBAL $response;

     $email = explode("⁄n", $response['message']['reply_to_message']['text'])[1];
     $subject = 'Ответ от GusevGroup';

     $headers  = "Content-type: text/html; charset=utf8 ⁄r⁄n"; 
     $headers .= "From: GusevGroup <andrey@gusevgroup.ru>⁄r⁄n"; 

     mail($email, $subject, $msg, $headers);
}
В $subject тема письма, в $headers, кодировка и отправитель.

Функция mail простая, но не надежная, к примеру нужно постараться, что бы mail.ru не банил подобные письма, по этому я использовал отправку писем через SMTP сервер. Это довольно громоздкая функция, которую нужно понять и приукрасить. О ней расскажу через пару дней.

Бот готов, остальное по вкусу.
Страница с документацией по GCBot в библиотеках.