Как с сайта отправить сообщение в телеграм
Отправка запросов
Для начала разберём, что мы можем сделать и получить пользуясь только браузером на любом устройстве , даже со смартфона.
-Большая часть взята из документации по Telegram Bot API .
Допускаются GET и POST запросы.
Для передачи параметров в Bot API доступны 4 способа:
- Запрос в URL
- application/x-www-form-urlencoded
- application/json (не подходит для загрузки файлов)
- multipart/form-data (для загрузки файлов)
Подробнее об этом вы можете прочитать в официальной документации ,
а сейчас приступим к практике GET запроса.
GET запросы: getMe, getupdates
Метод " getMe" позволит нам получить основную информацию о боте.
Открываем браузер и в адресной строке пишем:
Но вместо <token> пишем токен полученный от BotFather.
Как в примере выше.
Отправляем данный запрос и смотрим, что мы получим.
В результате мы видим, вкратце, что наш бот работает ,
его first_name , username и дополнительные сведения ,
что они значат вы можете догадаться просто переведя их.
Теперь получим обновления нашего бота,
перейдём в диалог к нашему боту в Telegram и напишем ему " /start ",
также в адресную строку браузера напишем вместо команды
И посмотрим, что на этот раз мы получим.
-поместил в кадре 2 окна, для вашего удобства,
чтобы не засорять всю статью скринами.
Метод " getupdates " позволяет получать нам информацию поступающую на нашего бота.
в интернете их полно.
Воспользуемся методом " sendmessage".
Пишем от имени бота через адресную строку, метод "sendmessage"
Для начала скопируем и сохраним chat_id, именно, нашего диалога.
В данном примере " 974446490 " вам следует сменить на id вашего диалога.
Как отправлять фотографии или видео ,
мы с вами разберём в следующих статьях,
но в браузере это делать нет смысла, так как за нас всё будет делать наш код.
Не будем с этим затягивать.
лично мне данная функция пригодилась, разве что, для розыгрышей,
но для этого приходилось следить за тем, что пишут мои друзья(как же им не дать протестировать бота), затем конвертировать с utf-8 русский текст и после уже отвечать.
Переходим к ЯП Python .
Первый код, эхо-бот
Для удобства, вы можете скачать PyCharm .
-Но видите ли на мою 7-ку он не встал, т.к. она 32-разрядная, так что в примерах будет самый обычный Python IDLE(Python 3.8.3 shell), результату это не помешает.
У кого также не получится скачать PyCharm, советую скачать notepad++, он удобно подстраивается почти под каждый язык, но выполнен в стиле обычного блокнота.
Для начала без объяснения.
Создаём текстовый документ( лучше в отдельной папке ) c именем << config.py >>, с текстом:
Теперь создаём в той же папке текстовый документ с любым названием, главное чтобы расширение было " .py " Я назову его как и бота << Moon.py >>.
Пишем в нём следующий текст, после расскажу, что он значит.
import telebot
def welcome(message):
-Просто не знал что придумать простенькое и решил сделать как во многих самоучителях, написать эхо-бота.
- import telebot - импорт библиотеки telebot, чтобы наш бот работал😁
import config подключаем наш файл config.py, чтобы взять от туда ТОКЕН.
Проще было бы написать << bot = telebot.TeleBot(" ВАШ_ТОКЕН "),
В нашем примере он пишет: "Привет, ИМЯ_ПОЛЬЗОВАТЕЛЯ!".
Чтобы запустить нашего бота в Python shell, достаточно нажать F5.
Этот способ предпочтительнее для недолгого включения .
А если на длительный промежуток времени , лучше воспользоваться python.exe или py.exe, их вы можете найти если наш файл открыть с помощью. В таком случае py.exe изображен с ракетой, а python.exe c чёрным фоном, в результате запуска, вы увидите, что разницы в них нет, но нам же надо всё рассмотреть.
Было решено создать телеграм бота, который будет принимать данные с помощью API и отправлять их пользователям.
Шаг 1. Создание телеграм бота
Для создания нового бота отправляем следующую команду /newbot. После чего бот запросит имя вашего нового бота, оно обязательно должно заканчиваться на Bot. В случае успеха в ответ получаем уникальный токен бота, который понадобится для дальнейшей работы. И не забудьте добавить вновь созданного бота в ваши контакты отправив ему команду /start
Шаг 2. Получить токен и chat id бота
Токен бота у нас уже есть, а chat id можно получить 2 способами:
Запрос к URL будем делать с помощью cURL :
Как видите все довольно просто. В переменной $message можно передавать любой текст, который будет отправляться ботом пользователю.
Прокси для телеграм бота
Прокси сервера можно найти на сайтах-списках прокси или купить. Чтобы соединиться через прокси-сервер в параметрах вызова cURL добавляем несколько строк
Добавить бота в группу телеграм
Заключение
А если немного изучить документацию, по аналогии можно создавать аналогичных ботов для приема заявок с сайта в Viber или например ВКонтакте.
Если вам понравилась статья, вы можете отблагодарить автора любой суммой, какую сочтете для себя приемлемой:Абсолютно любой предмет из нашей жизни мы можем описать по его характеристикам и состоянию, а так же воздействовать на это состояние. Например, ваш автомобиль имеет определенный цвет, марку, двигатель и т.д. Кроме того он может ехать, стоять, набирать или сбавлять Читать далее
Удалить значение из массива по ключу на PHP довольно простая задача, но вот когда необходимо удалить элемент массива именно по значению, то тут возникают небольшие сложности. Вроде бы банальная задача, но придется воспользоваться небольшой хитростью. В этой статье рассмотрим как Читать далее
Регулярные выражения - это мощный алгоритм сопоставления с образцом, который может быть выполнен в одном выражении. Регулярные выражения используют арифметические операторы, такие как (+, -, ^) для создания сложных выражений. Регулярные выражения помогают вам выполнять такие задачи, как проверка адресов Читать далее
Всем - привет. Давно зрела идея разобраться с отправкой данных из формы на сайте в мессенджер Telegram, но руки не доходили, а моментально получать заявки прямо в телефон, ой как хотелось!
Важно: для отправки файла из формы в Телеграм на вашем сервере должен быть включен cURL. Обратитесь к техподдержке вашего хостинга, они подскажут что делать и как включить. У многих он включен по умолчанию. Например, на моем хостинге Beget - так.
Как связать форму на сайте с Telegram
Итак, давайте приступим. Первое что нам нужно, это создать своего бота. Делается это достаточно просто. В поиске наберите @botfather, откройте родительского бота и нажмите "Start":
- Пишем команду /newbot, для создания нового бота.
- Придумываем имя бота.
- Придумываем ник бота.
Если все прошло успешно, то увидите поздравления и токен вашего бота, в моем случае это:
Теперь нужно найти своего бота в поиске, указав его ник и нажать "Start", чтобы активировать его. В моем случае ник @DWS_MESSAGE_bot.
После этого нужно создать групповой чат, в который будут приходить заявки и пригласить туда нашего бота. Давайте займемся этим.
Зайдите в меню, нажмите "New Group" и задайте имя вашему чату.
Не забываем пригласить своего бота в чат.
На данный момент у нас есть бот, мы знаем его токен, есть чат, в который будут приходить заявки, и нам осталось узнать только id чата. Для этого, напишем в чате:
А затем, в браузере введем:
где, XXXXXXXXXXXXXXXXXXXXXXX - токен вашего бота, полученный ранее.
Если все сделали правильно, то перед вами откроется подобная страница:
Разметка формы
Не стал выдумывать что-то сверхсложное, а просто 2 поля и возможность прикрепить файл. Оставил телефон, ведь у многих возникала проблема с символом "+", а файл добавил, так как меня просили разобраться с этой темой.
Добавил стили - получилось так:
Не забывайте, что форма отправляется без перезагрузки страницы, а значит используется ajax, и, для упрощения, jQuery. Поэтому подключаем сам jQuery, если не подключен, а после, и сам скрипт. Я сделал специальную папку telegramform, которую нужно поместить в корень сайта.
Код с AJAX запросом. Файл - telegramform.js
А теперь сам обработчик нашей формы. Файл - send-message-to-telegram.php:
Во многом он повторяет обработчик из других форм на блоге. Например, в статье "Создание формы обратной связи" используется аналогичный подход, и вы легко сможете осуществить отправку данных как на почту, так и в мессенджер одновременно.
Вот так с файлом:
Не стал делать каких-то серьезных валидаций, так как это просто пример и вам наверняка нужно будет не только отправка текста или картинки в Телеграм, но и на почту, а значит все равно подстраивать под свои нужды. Если будут вопросы - пишите в комментариях.
Уже давно хотел написать эту заметку, да все руки не доходят. Ну, короче говоря, раз уж собрался писать то слушайте, вотЪ.
- супер-удобная штука для отправки различного рода уведомлений прямо из консоли/скрипта
- удобство передачи логов, по сути, cat напрямую в телегу
1) Пишем боту @BotFather и через него создаем своего нового бота. Там же можно настроить его имя, установить ему аватарку, и т.д. Еще важно узнать ТОКЕН нашего бота, записываем.
2) Пишеv уже нашему @боту, начинаем с ним чат, нажимаем /start
Итого у нас получается два необходимых параметра :
- отправка выхлопа в виде текста:
- отправка выхлопа в виде файла:
- cat`им файл целиком (макс размер для отправки файлов ботов 20 мб):
6) Окей. Последним штрихом будет универсальный скрипт для отправки с подстановкой параметров (только подставьте ваши переменные вверху). Создаем его и погнали:
Можете скопировать в текстовом виде: tg-send
Не забудьте также сделать скрипт исполняемым, через:
Собственно, небольшое readme там уже написано в шапке. Но вот, на всякий случай, несколько примеров использования:
Текст отправляем в скобках, к файлам просто указываем полный путь.Там вшито сразу 2-а варианта отправки, в виде текста и файла, поочередно. Поэтому, иногда скрипт может на что-то ругаться на выхлопе (на отсутствие файла, например). Это можно игнорировать, главное чтобы вам приходили ваши логи и уведомления.
Ну вот собственно и все. Вариантов применения данной штуки очень много, все зависит только от вашей больной фантазии. По крайней мере, как минимум, можно избавиться наконец то от назойливых и тормознутых почтовых уведомлений. GL!
=== UPD (26.06.2020) ===
Дополню данную заметку. В связи с разблокировкой телеги в РФ, прикладываю обновленный скрипт (отправка запросов напрямую, без участия прокси-сервера):
Читайте также: