Telegram bot получить сообщение по id

Всем привет, это первый урок из курса по разработке ботов для Telegram. В данном курсе, мы с вами разберём как создавать ботов для Telegram на PHP. Я расскажу вам как отправлять текстовые сообщения, как отправлять файлы, как получать и обрабатывать сообщения от пользователей и по итогу мы с вами напишем скрипт для быстрого создания бота для Telegram на PHP.

В первом уроке мы с вами рассмотрим основные понятия связанные с API. Я вам расскажу что такое API методы, хуки, покажу на примере Telegram построение URL для создания запросов и расскажу о том как создаются простые API запросы на PHP.

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

Основные понятия

Давайте рассмотрим основные понятия для работы с API

API (Application Programming Interface) — это набор способов и правил, по которым различные программы общаются между собой и обмениваются данными.

#18 How to get telegram bot credentials (token and chat ID) in 30 seconds

Метод API — это определённое действие, которое должно выполнить приложение основываясь на полученных данных (отправить сообщение, вернуть список чатов, отправить картинку и т.д.)

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

Как отправлять HTTP запросы на PHP

Для отправки HTTP запросов можно использовать функцию file_get_contents(), где в качестве первого главного параметра указывается ссылка. Данная функция отлично подходит для отправки GET запросов, но к сожалению с помощью функции file_get_contents() нельзя отправлять POST запросы и поэтому для отправки POST запросов мы будем использовать библиотеку Curl.

Curl — это библиотека предназначенная для получения и передачи данных через такие протоколы, как HTTP, FTP, HTTPS.

Виды взаимодействия с приложением через API

Существует 2 вида взаимодействия с приложением через API. Первое это от клиента к серверу, а второе от сервера к клиенту. Клиентом в данном случае является ваше приложение (сайт), а в качестве сервера выступает сайт на который вы отправляете запросы (в нашем случае, это Telegram).

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

API запрос — это способ общения с программой, по средствам отправки данных от клиента — серверу.

Hooks (Хуки) — это способ общения с программой, по средствам отправки данных от сервера — клиенту. То есть при определённых изменениях в программе, сервер (приложение) будет отправлять данные на указанный скрипта клиента.

Документация для работы с API Telegram

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

К данному сайту мы будем ссылаться на протяжение всего курса.

Работа с документацией для Telegram

Документация для создания Telegram ботов разделена на несколько разделов.

В разделе Recent changes вы можете найти информацию об обновлениях Telegram. Здесь описаны версии и нововведения которые были внесены в функционал мессенджера.

Разделы Authorizing your bot и Making requests описывают способы авторизации ботов и способы создания запросов для работы с ботами.

Раздел Getting updates описывает способы получения обновлений взаимодействия с ботами. При взаимодействие пользователя с ботов, все его действия, по стандарту, записываются на сервера Telegram, и для того чтобы получить к ним доступ, необходимо отправить запрос getUpdates.

Отправив запрос getUpdates вы можете получить id последнего пользователя который написал боту, узнать его ник, текст сообщения и дату отправки. Если бот добавлен в сообщество, то вы можете получить id сообщества.

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

Следующий раздел, который нас интересует называется — Available types. Данный раздел описывает все типы данных которые возвращает нам Telegram. Когда ваш скрипт отправляет запрос, то обработав его, Telegram вернёт вам ответ в формате JSON строки, в котором описаны специальные параметры.

Например если вы отправляете сообщение, то Telegram вернёт вам массив в котором указаны id созданного сообщения, id пользователя, дата создания сообщения и много другое. Все эти данные вы можете разобрать и записать в базу данных.

Далее описан раздел, с которым нам придётся работать больше всего — это Available methods, методы для взаимодействия с ботом. Советую вам пройтись по всем методам и изучить все возможности работы с ботами.

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

Еще по теме:  Телеграмма получена или полученна

Ну и в конце у нас описаны методы для работы со стикерами, играми в Telegram, методы для работы с оплатой в Telegram.

Структура URL для отправки запросов в Telegram

API Telegram имеет простую и понятную структуру урлов для отправки запросов.

Вот пример URL для создания запросов к боту

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

— это уникальный ключ, который выдаётся при создание бота

— это метод запроса по которому мы будем получать или отправлять определённые данные. В зависимости от названия метода, мы будем выполнять разные действия.

Примеры URL для запросов

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

Вот так выглядит отправка сообщений методом GET. Первая часть URL содержит домен api.telegram.org, далее прописываем строку bot с токеном который нам даётся при создание бота, после чего указываем метод sendMessage и перечисляем GET параметры.

https://api.telegram.org/bot546445612928:AAHjk6643OYgWHim_TICgsaF9NDDVXYnKzA/sendMessage?chat_id=https://prog-time.ru/course/bot-v-telegram-1/» target=»_blank»]prog-time.ru[/mask_link]

Как привязать чат-бота в Telegram к текущему пользователю в Laravel

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

Вот типичный пример отправки сообщения из Laravel-приложения в Телеграм:

Route::post(‘bot/sendmessage’, function() < Telegram::sendMessage([ ‘chat_id’ =>’RECIPIENT_CHAT_ID’, ‘text’ => ‘Привет, мир!’ ]); return; >);

Предположим, что наша задача — слать уведомления пользователю в телеграм, если на сайте ему ответили на комментарий. Такое уведомление нужно отправлять только конкретному пользователю, а не всем сразу.

Простой способ для привязки пользователя на сайте и чата с ботом в телеграме — использование ссылки-инвайта для добавления чат-бота. Вы даёте пользователю специальную ссылку с параметром, и когда он на неё кликает — открывается чат с ботом, бот получает инструкцию «начать работу» и отправляет информацию на сервер вместе с тем самым параметром из ссылки, а также CHAT_ID . По этому параметру вы находите в своей базе пользователя и назначаете ему CHAT_ID .

Показываем пользователю на сайте ссылку:

https://telegram.me/arutyunov_bot?start=asd123

Когда пользователь перейдёт по ссылке, у него откроется чат 1-на-1 с ботом. Как только пользователь нажмёт кнопку Start, бот получит сообщение вида:

/start PAYLOAD

Вместо PAYLOAD и будет тот самый токен. В нашем примере это asd123 . Теперь вам нужно обработать это сообщение на своём сервере.

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

Вот пример для обработчика, который привязан к Webhook:

if ($message->getText()) < if (strpos(‘/start’, $message->getText()) !== false) < $textStrings = explode(‘ ‘, $message->getText()); if (isset($textStrings[1])) < $token = $textStrings[1]; $chatId = $message->getChat()->getId(); if ($token) < $user = User::find([‘telegram_token’ =>$token]); if ($user !== null) < $user->telegram_chat_id = $chatId; return response()->json([‘status’ => $user->save()]); > > > > >

В официальной документации Телеграм есть описание этого механизма, который называется Deep linking .

В телеграме каждый чат имеет свой уникальный CHAT_ID . Обратите внимание, что чат с ботом будет иметь числовой CHAT_ID больше 0, а если вы добавили бота в группу, то CHAT_ID будет отрицательный.

Источник: arutyunov.me

Парсим новости с сайта и отправляем их в телеграмм бота на Python: руководство с примерами кода

В современном мире информация подаётся со скоростью света. Автоматизация процесса получения новостей становится не только удобством, но и необходимостью. В этой статье мы рассмотрим, как использовать Python для парсинга новостей с сайта и последующей отправки их в Telegram бота.

Python — это один из наиболее удобных языков для веб-скрапинга благодаря своим мощным библиотекам. Beautiful Soup, например, позволяет нам легко анализировать HTML и извлекать нужную информацию.

Давайте приступим к написанию кода. Сначала нам нужно импортировать необходимые библиотеки и определить URL сайта, с которого мы хотим парсить новости.

import requests from bs4 import BeautifulSoup url = ‘https://example.com/news’

Теперь, с помощью requests мы получим HTML страницы, а BeautifulSoup поможет нам его анализировать.

response = requests.get(url) soup = BeautifulSoup(response.text, ‘html.parser’)

Предположим, что каждая новость на сайте обернута в тег div с классом ‘news-item’. Мы можем получить все такие элементы следующим образом:

news_items = soup.find_all(‘div’, class_=’news-item’)

Далее, Telegram предоставляет удобное API для создания ботов. Для отправки сообщений нам потребуется библиотека python-telegram-bot . Допустим, у нас уже есть токен бота и ID чата, куда мы хотим отправлять новости. Каждую новость мы отправим в виде отдельного сообщения.

from telegram import Bot bot_token = ‘your_bot_token’ chat_id = ‘your_chat_id’ bot = Bot(token=bot_token) for item in news_items: title = item.find(‘h2’).text link = item.find(‘a’)[‘href’] bot.send_message(chat_id, f’n’)

Вот и всё! Мы создали простой скрипт, который парсит новости с сайта и отправляет их в Telegram. Python и его библиотеки делают этот процесс лёгким и удобным. С помощью этого подхода вы сможете автоматизировать получение новостей и всегда быть в курсе самых актуальных событий.

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

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