Как запустить Телеграмм бота php

Пишем простых ботов на php и разбираемся как это работает.
Просто, доступно, на конкретных примерах.

Telegram bot code

Telegram боты на php своими руками. Простые примеры.

Сюда буду сваливать примеры с комментариями.
Расписывать что да как — времени нет, извините.
Итак, этот раздел посвящен телеграм ботам.
И, как можно понять из названия, боты будут написаны именно РНР.
Постараюсь максимально упростить и писать без использования библиотек, модулей и т.п. Максимально просто и понятно.

curl https://api.telegram.org/botXXXX:XXXXXXXXXXXXX/deleteWebhook curl -d «url=https://my.site.ru/bot/mytupobot.php» https://api.telegram.org/botXXXX:XXXXXXXXXXX/setWebhook curl https://api.telegram.org/botXXXX:XXXXXXXXXXXXX/getWebhookInfo

и готов написать своего первого бота прям срочно, чтобы хоть какой-то результат получить от этого. =)

Тупо-бот, самый простой телеграм бот на php, который почти ничего не делает болванка для проектов:

Итак, этот тупо-бот всё же чего-то делает.

Создание чат-бота на PHP. Настройка хостинга и домена


Например, бот умеет слушать сообщения чата в котором сидит и на команду /start выдавать тупо сообщение, смайлик и говорить что он на связи.
А для бота это самое главное — уметь слушать и уметь отправлять сообщение.
Постарался в примере показать некоторые детали. Такие как вставка смайлов в сообщения бота, парс-мод в html сообщения, выгребания из сообщений команд. Вроде самое необходимое есть и наглядно.

UPD: Исходники этих и других примеров php ботов расположены на гитЛабе https://gitlab.com/net4me/telegram-php и код лучше брать оттуда.
Тут код неудобно мне обновлять, но я стараюсь это делать по возможности.

Пример «welcome message».

Задача: При подключении юзера к каналу — выдать приветственное сообщение.
При покидании юзером канала — вывести прощальное сообщение.

Пример простой. Но заставляет задуматься, а что же там в этом контенте такого, что оттуда можно достать всё что угодно? Делаем самого неправильного бота дебагера.

Бот дебагер отладчик. Постит json объекты как есть

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

Что мы сделали? Правильно. Все сообщения (кроме команды /start , на которую мы реагируем ) выдаём в сыром виде. Как есть.
Должен заметить, что PHP далеко не самый заточенный под ботов язык программирования. Но в качестве начала изучения telegram bot api вполне подходит и php.

Еще по теме:  Почемц не можешь по номеру найти человека в ТГ

Эти и другие примеры простых телеграм ботов, работающих через webHook вы найдете на github https://github.com/BenJanet4me/telegram-php
И конечно, до новых встреч на портале net4me!

Дополнение: Использование inline keyboard в сообщениях.

Спасибо 4eburashk.

Telegram бот на PHP за 10 минут

Свежие версии этих php ботов вы найдёте в нашем репозитории на gitLab: https://gitlab.com/net4me/telegram-php
Дополнение: У данной статьи появилось продолжение про использование curl и post для отправки в telegram фото, файлов, координат, аудио и т.д.
Добро пожаловать во вторую часть статьи!

  • net4me.net home page
  • Contacts

Источник: net4me.net

Отправка сообщений в телеграм с помощью JavaScript (JQuery) и PHP

ddr64.link

Сегодня я опишу основы, как можно отправлять сообщения, фото, видео или аудио в ваш telegram канал с помощью JavaScript или PHP.

Для начала вам нужно создать бота, здесь нет ничего сложного, программировать ничего не надо.

В телеграме нужно найти, через поиск, бота BotFather, и добавить его в телеграм. С помощью бота BotFather, мы будем создавать своих ботов. Для этого заходим в бот BotFather, пишем /newbot и отправляем сообщение боту.

Создание телеграмм бота

Создание телеграмм бота

После того, как вы отправили /newbot, вам нужно придумать название для ваше бота. В моем случае, я назвал бот myddr64_bot

Создание телеграмм бота

Теперь нужно придумать еще имя пользователя для нашего бота, одно из условий, имя должно заканчиваться на окончание “bot”. У меня, что имя бота, что имя пользователя, называются одинаково, хотя в названии бота, не обязательно использовать окончание “bot”.

Создание телеграмм бота

После того, как вы придумаете имя пользователя, и отправите его боту, вы в ответ получите токен (715125500:AAHJCKYqq9AR_3yvn6EI7m5VTs_2ThYaav0), с помощью которого, вы будете иметь доступ к вашему созданному боту.

Сразу скажу, бот, который я привожу в примере, я уже удалил.

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

Создание телеграмм бота

По сути, чтобы отправить сообщение в телеграм канал, нам достаточно в адресной строки нашего браузера создать запрос определенного формата.

Источник: ddr64.link

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

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

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

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

Еще по теме:  Как следить за активностью в Телеграмме

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

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

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

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

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

https://api.telegram.org/bot/НАЗВАНИЕ_МЕТОДА.

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

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

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

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

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

https://api.telegram.org/bot/getUpdates

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

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

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

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

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

https://api.telegram.org/bot/sendMessage?chat_id=; $chat_id = «»; $values = $hook->getValues(); #Получаем название формы $formName = $modx->getOption(‘formName’, $formit->config, ‘form-‘.$modx->resource->get(‘id’)); #Получаем ip адрес отправителя $ip = $modx->getOption(‘REMOTE_ADDR’, $_SERVER, »); #Данные с формы $name = $values[‘name-zv’]; $phone = $values[‘phone-zv’]; #Создаем массив $arr = array( «Имя» => $name, «Телефон» => $phone, «Название формы» => $formName, «Айпи» => $ip); /*Цикл по массиву (собираем сообщение) */ foreach($arr as $key => $value) < $txt .= «».$key.»: «.$value.»%0A»; > #Отправляем сообщение $fp=fopen(«https://api.telegram.org/bot/sendMessage?chat_id=text=»,»r»); #Возвращаем true return true;

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

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

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

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

И так, теперь там где вызывается Formit, прописываем наш хук FormitTelegram в formName=`Название формы`

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

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

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

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

UPD

Воспользуйтесь методами компонента https://modstore.pro/packages/alerts-mailing/modtelegram
Очень удобно, особенно при отправке изображений 🙂

Написать комментарий

Алексей 25 июля 2022, 15:32 # ↓ 0
А как сделать чтобы приходили данные с чекбоксов формы? Данный скрипт их не выводит
Ильвар 11 января 2023, 15:10 # ↑ ↓ 0
Яна 23 мая 2022, 18:38 # ↓ 0

Еще по теме:  Возможно ли установить Телеграмм на компьютер без телефона

Кто захочет подцепить бота в группу, добавьте также в группу бота Get My ID, он выдаст Current chat ID начинающийся с минуса, его и нужно использовать в сниппете

Shahzod 11 января 2022, 13:50 # ↓ 0

Всем привет. Готовы ли вы к этому проекту? По какой-то причине я не мог использовать то, что я сделал. По возможности скиньте .zip

Сергей 27 ноября 2021, 20:58 # ↓ 0

Я перевел своих клиентов на webjack, делает все то же самое, минимальный тариф дешевле.
Можно получить месяц бесплатно по промокоду semen21, напишите его в чат техподдержки на сайте

Jstart 08 ноября 2021, 15:09 (Комментарий был изменён) # ↓ 0

Как возможно прикрепить файлы например фотографии и документы и отправить?
Не где не могу найти материал, как это можно реализовать?
Я думаю эта тема была бы топ если реализовать такое ))
Просто есть sendPhoto — для фото и есть sendDocument — для документов, вопрос такой есть ли общий переменная может как то объединить?
Мой снипет

getValues(); // Получаем название формы $formName = $modx->getOption(‘formName’, $formit->config, ‘form-‘.$modx->resource->get(‘id’)); // Получаем ip адрес отправителя $ip = $modx->getOption(‘REMOTE_ADDR’, $_SERVER, »); // Берем данные с формы $name= $values[name]; $phone= $values[‘phone’]; $email= $values[’email’]; $length= $values[‘length’]; $width= $values[‘width’]; $height= $values[‘height’]; $circulation= $values[‘circulation’]; $arr = array( «IP» => $ip, «Длина» => $length, «Ширина» => $width, «Высота» => $height, «Количество» => $circulation, «Имя» => $name, «Телефон» => $phone, «Email» => $email); if($length){ $arr[«Длина»] = $length; } if($width){ $arr[«Ширина»] = $width; } if($height){ $arr[«Высота»] = $height; } if($circulation){ $arr[«Количество»] = $circulation; } if($email){ $arr[«Email»] = $email; } if($phone){ $arr[«Телефон»] = $phone; } if($email){ $arr[«Email»] = $email; } $txt = ‘Заполнена форма — ‘.$formName.»n»; // Цикл по массиву (собираем сообщение) foreach($arr as $key => $value) { $txt .= «».$key.»: «.$value.» n»; } // Отправляем сообщение посредством cURL $website=»https://api.telegram.org/bot».$token; $params=[ ‘chat_id’ => $chat_id, ‘text’ => $txt, ‘parse_mode’ => ‘html’ ]; $ch = curl_init($website . ‘/sendMessage’); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, ($params)); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $result = curl_exec($ch); $modx->log(MODX_LOG_LEVEL_ERROR, $result); curl_close($ch); //Возвращаем true – это особенность написания хуков для FormIt. return true;
Игорь 09 ноября 2021, 21:59 # ↑ ↓ 0
Воспользуйтесь данным компонентом modstore.pro/packages/alerts-mailing/modtelegram
jstart 10 ноября 2021, 00:40 # ↑ ↓ 0

Оно не понятное, и смысла не вижу от него, как с формой работать, как подключать, нету не какой информации.
Доки вообще старые.
Как вставлять документы?
Если скините форум как он работает и подключается было бы супер.

jstart 10 ноября 2021, 00:44 (Комментарий был изменён) # ↑ ↓ 0

Это же чат и всё, смысла нет, нужна именно форма для отправки заявки, спасибо конечно, но это не подходит уже смотрел.

Источник: igamov.ru

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