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

С помощью декораторов можно отловить, например, определённую команду, посылаемую боту. Например, если использовать такой декоратор:

то, при отправке мной команды ‘/abc’ боту из чата, он выполнит всё, что указанно в функции abc(). Вопрос такой, как без помощи чата (не используя приложение Telegram на телефоне/компьютере) отправить боту ту же команду ‘/abc’, следовательно, что бы выполнился код функции abc()? Используя, например, requests и т.д. для обращения к API Telegram

Отслеживать
13.5k 12 12 золотых знаков 43 43 серебряных знака 72 72 бронзовых знака
задан 31 янв 2018 в 2:46
470 1 1 золотой знак 6 6 серебряных знаков 18 18 бронзовых знаков
пример от бота в чат: просто requests.post() вызовите
31 янв 2018 в 8:14
. вы, наверное, не поняли суть вопроса.
31 янв 2018 в 11:59
вы наверное комментарий не поняли 😉

13 фев 2018 в 8:09

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Схема работы бота — событийная, не используя телефон или другие клиенты можно только заставлять его отправлять сообщения и выполнять другие действия, перечень которых определён Bot API. Вклинить свой код туда вы не сможете. Свой код вы можете выполнять только ловя обновления (Updates) от бота (любые).

Отправка сообщений в телеграм с помощью бота Telecobra

UPD Чуть подробнее о том же самом

У бота, как программы, только одна точка входа — получение обновлений от серверов телеграма. То есть, если не придёт обновление (команда боту, например) — ваша логика его обработки не будет выполнена, ваш код не будет выполняться. Обновления можно слать только клиентом — официальными клиентами мессенджера (только через интерфейс), либо собственным клиентом на базе Telegram API (через интерфейс либо программно).

Обращение к боту через Bot API позволяет выполнять только предопределённые действия, такие как sendMessage, sendInvoice и тп. Никакой свой middleware выполнить не получится.

Соответственно, если хотите, чтобы выполнялся какой-то конкретный код по какой-то конкретной команде — эту команду надо послать через одного из клиентов, не имеет значения какого. Либо, как вариант, использовать выполнение какого-то куска кода по расписанию.

Не по теме вопроса непосредственно, но может быть полезно — Пример отправки сообщения от бота напрямую http-запросом.

Источник: ru.stackoverflow.com

Создание Telegram бота на PHP #2: создание первого бота для Telegram

Во втором уроке я вам покажу как создать бота для Telegram и мы попробуем отправить несколько сообщений в чат.

Еще по теме:  Бот для ТГ продать

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

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

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

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

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

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

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

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

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

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

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

«my_chat_member»:

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

Теперь давайте попробуем отправить сообщение нашему боту методом GET запроса.

Здесь мы создаём переменные в которые заносим токен, id чата и сообщение. Сообщение мы прогоняем через функцию urlencode() для формирования специальный кодировки, для создания запросов.

А в конце мы используем функцию file_get_contents() для отправки запроса.

$token = «5340791844:AAEXXD786InvQrlWHRXykV91USOQSevrPVU»; $chat_id = -594377170; $textMessage = «Тестовое сообщение»; $textMessage = urlencode($textMessage); $urlQuery = «https://api.telegram.org/bot». $token .»/sendMessage?chat_id=». $chat_id .» rel=»noopener noreferrer nofollow»>https://prog-time.ru/parsing-php-biblioteka-curl/

Давайте посмотрим код для запросов, с использованием Curl.

$token = «5340791844:AAEXXDduvInvQrlykV91USOQSevrPVU»; $getQuery = array( «chat_id» => 1424625511, «text» => «Новое сообщение из формы», «parse_mode» => «html», ); $ch = curl_init(«https://api.telegram.org/bot». $token .»/sendMessage?» . http_build_query($getQuery)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_HEADER, false); $resultQuery = curl_exec($ch); curl_close($ch); echo $resultQuery;

Теперь мы получили более удобочитаемый код, благодаря записи параметров в массив $getQuery. При такой структуре, вам не нужно переписывать URL запроса, изменения вносятся только в массив $getQuery, а функция http_build_query() сама добавит строку параметров в URL запроса.

В дальнейших уроках, мы будем пользоваться библиотекой Curl, но вы должны понимать что многие запросы можно отправлять через функцию file_get_contents. Нужно просто составить правильный URL.

У нас получилось отправить сообщение в Telegram с помощью нашего бота. Теперь давайте посмотрим на ответы которые отправляет нам Telegram.

Разбор ответа от Telegram.

При создании запроса к боту, Telegram всегда отправляет ответ, который вы можете записать в переменную и вывести на экран.

Если вы допустили ошибку, то вам придёт сообщение с параметрами, в которых указан код ошибки с описанием.

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

Еще по теме:  Кнопка ВК в Телеграмме

Сейчас давайте попробуем сделать запрос на отправку сообщения и разобрать полученный ответ.

< «ok»: true, «result»: < «message_id»: 12, «from»: < «id»: 5340791844, «is_bot»: true, «first_name»: «test_prog_time», «username»: «test_prog_time_bot» >, «chat»: < «id»: 1424646511, «first_name»: «Илья», «last_name»: «Лящук», «username»: «iliyalyachuk», «type»: «private» >, «date»: 1658907913, «text»: «Новое сообщение из формы» > >

В ответе мы видим следующее:

  • Параметр «ok» — описывает успешность отправки запроса
  • «result» — возвращает массив с данными ответа, в которых:
  • «message_id» — id созданного сообщения
  • «from» — кто отправил сообщение
  • «chat» — данные о чате в который попало сообщение
  • «date» — дата создания сообщения
  • «text» — текст сообщения
  • Все боты для Telegram создаются через BotFather
  • Для отправки запросов вы можете использовать функцию file_get_contents или воспользоваться библиотекой Curl
  • Каждый запрос в Telegram возвращает ответ с описание результата запроса.

Источник: habr.com

Создание Telegram бота на PHP #2: создание первого бота для Telegram

Во втором уроке я вам покажу как создать бота для Telegram и мы с вами попробуем отправить сообщения в чат в Telegram.

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

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

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

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

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

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

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

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

«my_chat_member»:-594377170, .

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

Теперь давайте попробуем отправить сообщение нашему боту методом GET запроса.

Здесь мы создаём переменные в которые заносим токен, id чата и сообщение. Сообщение мы прогоняем через функцию urlencode() для формирования специальный кодировки, для создания запросов.

А в конце мы используем функцию file_get_contents() для отправки запроса.

$token = «5340791844:AAEXXD786InvQrlWHRXykV91USOQSevrPVU»; $chat_id = -594377170; $textMessage = «Тестовое сообщение»; $textMessage = urlencode($textMessage); $urlQuery = «https://api.telegram.org/bot». $token .»/sendMessage?chat_id=». $chat_id .» target=»_blank» rel=»noreferrer noopener»>https://prog-time.ru/parsing-php-biblioteka-curl/

Давайте посмотрим код для запросов, с использованием Curl.

$token = «5340791844:AAEXXDduvInvQrlykV91USOQSevrPVU»; $getQuery = array( «chat_id» => 1424625511, «text» => «Новое сообщение из формы», «parse_mode» => «html», ); $ch = curl_init(«https://api.telegram.org/bot». $token .»/sendMessage?» . http_build_query($getQuery)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_HEADER, false); $resultQuery = curl_exec($ch); curl_close($ch); echo $resultQuery;

Еще по теме:  В каком году создан Телеграмм

Теперь мы получили более удобочитаемый код, благодаря записи параметров в массив $getQuery. При такой структуре, вам не нужно переписывать URL запроса, изменения вносятся только в массив $getQuery, а функция http_build_query() сама добавит строку параметров в URL запроса.

В дальнейших уроках, мы будем пользоваться библиотекой Curl, но вы должны понимать что многие запросы можно отправлять через функцию file_get_contents. Нужно просто составить правильный URL.

У нас получилось отправить сообщение в Telegram с помощью нашего бота. Теперь давайте посмотрим на ответы которые отправляет нам Telegram.

Разбор ответа от Telegram.

При создании запроса к боту, Telegram всегда отправляет ответ, который вы можете записать в переменную и вывести на экран.

Если вы допустили ошибку, то вам придёт сообщение с параметрами, в которых указан код ошибки с описанием.

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

Сейчас давайте попробуем сделать запрос на отправку сообщения и разобрать полученный ответ.

< «ok»: true, «result»: < «message_id»: 12, «from»: < «id»: 5340791844, «is_bot»: true, «first_name»: «test_prog_time», «username»: «test_prog_time_bot» >, «chat»: < «id»: 1424646511, «first_name»: «Илья», «last_name»: «Лящук», «username»: «iliyalyachuk», «type»: «private» >, «date»: 1658907913, «text»: «Новое сообщение из формы» > >

В ответе мы видим следующее:

  • Параметр «ok» — описывает успешность отправки запроса
  • «result» — возвращает массив с данными ответа, в которых:
  • «message_id» — id созданного сообщения
  • «from» — кто отправил сообщение
  • «chat» — данные о чате в который попало сообщение
  • «date» — дата создания сообщения
  • «text» — текст сообщения
  • Все боты для Telegram создаются через BotFather
  • Для отправки запросов вы можете использовать функцию file_get_contents или воспользоваться библиотекой Curl
  • Каждый запрос в Telegram возвращает ответ с описание результата запроса.

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

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

Наши планы

  • Написание материала для курса по разработке ботов на Telegram
  • Разработка универсального парсера на PHP

Поддержите мой сайт!

Каждый переведённый донат, мотивирует на создание новых записей и уроков на YouTube

Источник: prog-time.ru

Рейтинг
( Пока оценок нет )
Загрузка ...