Как отправить сообщение определенному пользователю telegram bot

от admin

Отправка сообщений пользователям с бота в Telegram

Если вы читаете данную статью, значит, скорей за все имеете свой бот в телеграмме. Соответственно расписывать и объяснять как создать бота я здесь не буду. (Возможно в будущем создам отдельную статью по этому поводу, но какой в этом смысл, ведь в гугле их пруд пруди).

Надеюсь вы используете библиотеку python-telegram-bot . Если это не так, увы, эта статья не для вас…хотя…вы попробуйте, возможно у вас тоже будет работать данный пример (либо сделаете по аналогии).

Для отправки сообщений создадим новую функцию и назовем её send_message , передадим параметры bot и job .

Далее нам нужно получить chat_id пользователей. (Надеюсь вы подключили к своему боту базу данных, либо записываете в файл chat_id от всех пользователей которые когда-либо пользовались вашим ботом). После чего используя метод sendMessage указываем параметры chat_id пользователя и отправляемый текст text.

В итоге у нас должно получиться:

И так, что же мы здесь написали, давайте разберемся:

@mq.queuedmessage — Указываем, что сообщения будут отправлены не сразу все, а в порядке очереди, так как телеграмм ограничивает отправку сообщений в секунду. Если не ошибаюсь, не больше 30 сообщений в секунду. for user in get_subscribed(db) Получаем список пользователей с базы данных, get_subscribed и прохожусь по каждому пользователю циклом вытягивая его chat_id

Пол дела сделано, осталось отправить сообщение. Для этого переходим в главную функцию main() (или как она у вас там называется)

Что бы один раз отправить сообщение я обычно делаю следующее — ставлю интервал в 10 минут, жду пока сообщения отправляться, останавливаю бота и комментирую эту строку, затем снова запускаю бота. Можно конечно сделать это через Условие, на подобии:

Отправка сообщений в Telegram

И вот одним из популярных мессенджеров является Telegram. На мой взгляд преимуществ у него много. И наверное каждый пользователь хотел бы получать сообщения с формы прямо в телеграмм! Ведь это круто, на дворе то уже 2017 год))

И как раз в данной статье я хочу показать Вам, как я настроил отправку сообщений с формы обратной связи в Telegram. Конечно всё это я реализовал для MODX, это не сложно реализовать и на каком-нибудь PHPMailer.

Схема использования очень проста, и выглядит так:

Отправка сообщений с формы в телеграмм

Первым делом необходимо создать бота в Telegram с помощью этой инструкции

Дальше, после того как Вы создали бота, то у вас есть так называемый токен, который как раз нам и пригодится!

Отправка запросов

Все запросы к Telegram Bot API должны осуществляться через HTTPS в следующем виде:

Все методы доступны в Telegram Bot API

Узнать id чата Telegram

Дальше необходимо узнать id чата, чтобы бот присылал сообщения с формы именно Вам!

Для этого необходимо что-нибудь написать своему боту и воспользоваться методом getUpdates.

После того как Вы написали своему боту, прописываем следующий адрес в браузере:

Вместо <token> необходимо прописать свой токен!

Если всё сделали правильно, то Вы получите ответ в виде массива. Для корректный работы нам необходимо id чата, он как-раз такие есть в этом массиве после «chat»:

Так, id чата успешно получен, теперь попробуем отправить тестовое сообщение своему боту с браузера!

Отправка тестового сообщения

Чтобы отправить сообщение себе через бота, необходимо воспользоваться методом sendMessage. Для этого прописываем следующий адрес в браузере, вместо <token> и <chat_id> необходимо прописать свои данные!

Нажимаем enter и вуаля, наше первое сообщение от нашего бота! Круто!!

Отправка тестового сообщения боту Telegram

Как вы заметили, текст сообщения мы прописали после метода text с типом string.

Отправка сообщений с формы

Ура мы всё настроили, теперь осталось самая главная часть, отправка сообщений с формы

Как я писал выше, предусловием является то, что Вы настроили отправку сообщений и они отправляются к Вам на почту. Неважно через AjaxForm или без него, главное что вы используете Formit.

А отправлять сообщения мы как раз будем с помощью Formit, а именно мы создадим так называемый хук.

Хук – это скрипт, который запускаются после того, как форма прошла валидацию. Каждый хук должен обязательно возвращать true в случае успеха и false в случае ошибки!

Читать:
Был недавно в телеграмме это сколько времени

Итак, заходим в административную панель и переходим по вкладке элементы и там создаем сниппет FormitTelegram, который содержит следующий код:

Указываем токен и id чата!

Наименование полей с формы у вас могут быть другими, я использовал название полей со статьи, где мы настраивали отправку сообщений с модального окна!

К тому-же данные с формы можно получить сразу с помощью метода $hook ->getValues(); но для наглядности я решил расписать всё подробнее))

Кстати строки в телеграмме я переношу с помощью %0A. Почему-то \n и <br/> не работали(

И так, теперь там где вызывается Formit, прописываем наш хук FormitTelegram в &hooks и проверяем. В итоге получим следующее сообщение:

Отправка сообщения с формы в Telegram

Чтобы название формы было нормальным, то необходимо в вызове Formit необходимо указать параметр &formName=`Название формы`

Вот и всё, также можно настроить отправку сообщений и себе в ВК!

Если у Вы отправляете форму с помощью PHP, то на блоге smartlanding.biz есть грамотная инструкция, где всё подробно расписано с применением Ajax.

Надеюсь статья понравилась и очень полезная 🙂

Пишите в комментариях, чтобы вы ещё хотели реализовать с помощью ботов для телеграмма!

Отправка сообщений в telegram с помощью php

Отправка сообщений в telegram с помощью php

Telegram уже давно перестал быть мессенджером для террористов, РКН от него отстал. И все больше людей начинают общаться в телеграм как по работе, так и в личных переписках. Для многих этот мессенджер стал не просто чатом, а еще и соц.сетью со своими новостными и развлекательными каналами. Так же удобные боты телеграмм позволяют добавить интерактивности в чаты и каналы. Вот и я решил немного углубиться в функциональное использование telegram. Первая идея – это получать уведомления с сайтов. Как настроить телеграм и как написать скрипт, который будет отправлять сообщения в чат постараюсь объяснить в этой статье.

Создание и настройка telegram бота для отправки сообщений

Напрямую скриптом отправлять сообщения в телеграм нельзя, но можно делать запросы к api ботов. Бот же в свою очередь будет делать то, что нам нужно – отправлять пользователю сообщения. Поэтому перед тем, как писать скрипт, нужно создать бота. В телеграм эта процедура занимает всего пару минут. Для создания и настроек есть официальный верифицированный бот: @BotFather. Откройте его в телеграм и отправьте команду «/newbot». Далее нужно будет придумать название и логин своему боту. Это все выполняется прямо в чате телеграм, ниже можете увидеть скрин переписки с ботом. После успешного создания и настроек, BotFather пришлет токен созданного бота. Токен потребуется для отправки запросов к api.

Создание и настройка telegram бота для отправки сообщений

На этом настройка бота закончена. Но остался один момент – получение id пользователя телеграм, которому будет отправляться уведомления. Чтобы узнать свой id можно также воспользоваться ботами, их много. Я нашел вот такой: @getmyid_bot. Просто запустите бота и в ответ он напишет ваш ID.
У телеграм есть документация с описанием всех методов api, которые можно использовать. Документацию можно почитать тут: api ботов telegram.
В нашем случае всю документацию читать не придется, достаточно только одного метода – sendmessage. Он позволяет отправлять сообщения пользователям, которые начали диалог с ботом. У метода всего два обязательных параметра chat_id – ID пользователя или канала, который получит уведомление и text – текст сообщения. В скрипте я использовал еще третий параметр — parse_mode, он не обязательный, позволяет задать способ форматирования текста. По дефолту текст сообщения никак не форматируется. Parse_mode может принимать несколько значений: Markdown, MarkdownV2 и HTML. Пользоваться разметкой Markdown и MarkdownV2 я не умею, это телеграмовские теги. Поэтому выбрал HTML. Только обратите внимание, что это не полноценный html, теги поддерживаются не все. Подробнее можно почитать в документации.
На этом подготовка завершена, остается только написать код. Не забудьте открыть диалог со своим, только что созданным, ботом и запустить его. Если этого не сделать, то сообщения приходить не будут, а api в ответ на запросы будет присылать ошибки.

Php код для отправки сообщения в telegram

Ну а теперь самое интересное – код отправки запроса к api. В коде добавлены подробные комментарии, должно быть все понятно.

Похожие статьи