Когда пользователь отправляет картинки боту, то на PHP скрипт приходит массив превью этих картинок. Последним элементом массива является оригинальная картинка.
Максимальный допустимы размер файла изображения – 20 МБ.
Получение и сохранение графических файлов
Если мы отправим боту картинку (в мессенджере), то получим от Telegram следующий запрос:
Array
(
[update_id] => 699174148
[message] => Array
(
[message_id] => 192
[from] => Array
(
[id] => 1526361849
[is_bot] =>
[first_name] => FirstName
[last_name] => LastName
[username] => UserName
[language_code] => uk
)
[chat] => Array
(
[id] => 1526361849
[first_name] => FirstName
[last_name] => LastName
[username] => UserName
[type] => private
)
[date] => 1670943133
[photo] => Array
(
[0] => Array
(
Как загрузить видео любого размера в TELEGRAM-БОТа и без потери формата видео/ Конструктор SAMBOT.RU
[file_id] => AgACAgIAAxkBAAPAY5iRncFiTaQqFAGQRMV27WCzqbQAAq_FMRvPkMlI5UK0Qv021REBAAMCAANzAAMsBA
[file_unique_id] => AQADr8UxG8-QyUh4
[file_size] => 505
[width] => 90
[height] => 64
)
[1] => Array
(
[file_id] => AgACAgIAAxkBAAPAY5iRncFiTaQqFAGQRMV27WCzqbQAAq_FMRvPkMlI5UK0Qv021REBAAMCAANtAAMsBA
[file_unique_id] => AQADr8UxG8-QyUhy
[file_size] => 2654
[width] => 320
[height] => 226
)
[2] => Array
(
[file_id] => AgACAgIAAxkBAAPAY5iRncFiTaQqFAGQRMV27WCzqbQAAq_FMRvPkMlI5UK0Qv021REBAAMCAAN4AAMsBA
[file_unique_id] => AQADr8UxG8-QyUh9
[file_size] => 11414
[width] => 800
[height] => 566
)
[3] => Array
(
[file_id] => AgACAgIAAxkBAAPAY5iRncFiTaQqFAGQRMV27WCzqbQAAq_FMRvPkMlI5UK0Qv021REBAAMCAAN5AAMsBA
[file_unique_id] => AQADr8UxG8-QyUh-
[file_size] => 16763
[width] => 1280
[height] => 906
)
Напомню, этот запрос мы можем увидеть в файле message.txt после отправки фото.
Здесь нас интересует file_id, в котором указано ID изображения.
Теперь мы можем получить путь к файлу изображения и скачать его. Для этого можно ввести в адресной строке браузера ссылку со следующей конструкцией:
https://api.telegram.org/bot/getFile?file_id=
- – это токен бота.
- – ID файла который нужно скачать.
Например, чтобы скачать картинку которую я ранее отправил боту в мессенджере, нужно в адресной строке браузера вписать следующее:
https://api.telegram.org/bot5741786015:AAGTuEwCBGHmcJP9kO-OzV_xKIduBkbAK6Y/getFile?file_id= AgACAgIAAxkBAAPAY5iRncFiTaQqFAGQRMV27WCzqbQAAq_FMRvPkMlI5UK0Qv021REBAAMCAAN5AAMsBA
В ответе вы получите:
Здесь, в file_path указан адрес картинки.
Чтобы скачать эту картинку мы можем сформировать следующую ссылку:
https://api.telegram.org/file/bot
- – токен бота.
- – путь к файлу изображения, который мы получили в результате предыдущего запроса (https://api.telegram.org/bot/getFile?file_id=)
Пример ссылки, перейдя по которой мы скачаем картинку, которая была отправлена боту в мессенджере:
[Создать бот] Иконки и картинки для ботов Телеграм, Фейсбук
https://api.telegram.org/file/bot5741786015:AAGTuEwCBGHmcJP9kO-OzV_xKIduBkbAK6Y/photos/file_0.jpg
Получение и сохранение картинки на сервере
Получение картинки с помощью PHP и её сохранение на сервере можно реализовать следующим образом:
//відповідь на збереження картинки if (!empty($data[‘message’][‘photo’])) < $photo = array_pop($data[‘message’][‘photo’]); $res = sendTelegram( ‘getFile’, array( ‘file_id’ =>$photo[‘file_id’] ) ); $res = json_decode($res, true); if ($res[‘ok’]) < $src = ‘https://api.telegram.org/file/bot’ . TOKEN . ‘/’ . $res[‘result’][‘file_path’]; $dest = __DIR__ . ‘/’ . time() . ‘-‘ . basename($src); if (copy($src, $dest)) < sendTelegram( ‘sendMessage’, array( ‘chat_id’ =>$data[‘message’][‘chat’][‘id’], ‘text’ => ‘Картинка збережена на сервері’ ) ); > > exit(); > ?>
Отправка картинок Telegram боту
Для отправки файлов изображений Telegram боту используют метод sendPhoto.
// Константа токен define(‘TOKEN’, ‘5741786015:AAGTuEwCBGHmcJP9kO-OzV_xKIduBkbAK6Y’); // Функція виклику методів API function sendTelegram($method, $response) < $ch = curl_init(‘https://api.telegram.org/bot’ . TOKEN . ‘/’ . $method); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $response); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); $res = curl_exec($ch); curl_close($ch); return $res; >// Відповідь на текстове повідомлення // Отримуємо текст, який відправив користувач Телеграм боту в месенджері if (!empty($data[‘message’][‘text’])) < $text = $data[‘message’][‘text’]; // Відправили фото в Telegram бот, якщо користувач ввів команду /sendimg if (mb_stripos($text, ‘/sendimg’) !== false) < sendTelegram( ‘sendPhoto’, array( ‘chat_id’ =>$data[‘message’][‘chat’][‘id’], ‘photo’ => curl_file_create(__DIR__ . ‘/foto-ua.jpg’) ) ); exit(); > > ?>
В данном примере, если пользователь отправит нашему Телеграм боту команду /sendimg, то в ответном сообщении от бота, он получит картинку foto-ua.jpg, которая находится на сервере в папке с нашим скриптом.
Код PHP с примером получения и отправки фото
// Константа токен define(‘TOKEN’, ‘5741786015:AAGTuEwCBGHmcJP9kO-OzV_xKIduBkbAK6Y’); // Функція виклику методів API function sendTelegram($method, $response) < $ch = curl_init(‘https://api.telegram.org/bot’ . TOKEN . ‘/’ . $method); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $response); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); $res = curl_exec($ch); curl_close($ch); return $res; >// Відповідь якщо користувач прислав фото в месенджері, а ми його зберегли на сервері if (!empty($data[‘message’][‘photo’])) < $photo = array_pop($data[‘message’][‘photo’]); $res = sendTelegram( ‘getFile’, array( ‘file_id’ =>$photo[‘file_id’] ) ); $res = json_decode($res, true); if ($res[‘ok’]) < $src = ‘https://api.telegram.org/file/bot’ . TOKEN . ‘/’ . $res[‘result’][‘file_path’]; $dest = __DIR__ . ‘/’ . time() . ‘-‘ . basename($src); if (copy($src, $dest)) < sendTelegram( ‘sendMessage’, array( ‘chat_id’ =>$data[‘message’][‘chat’][‘id’], ‘text’ => ‘Картинка збережена на сервері’ ) ); > > exit(); > // Відповідь на текстове повідомлення // Отримуємо текст, який відправив користувач Телеграм боту в месенджері if (!empty($data[‘message’][‘text’])) < $text = $data[‘message’][‘text’]; // Відправили фото в Telegram бот, якщо користувач ввів команду /sendimg if (mb_stripos($text, ‘/sendimg’) !== false) < sendTelegram( ‘sendPhoto’, array( ‘chat_id’ =>$data[‘message’][‘chat’][‘id’], ‘photo’ => curl_file_create(__DIR__ . ‘/foto-ua.jpg’) ) ); exit(); > > ?>
Вас может заинтересовать
- Telegram бот на PHP: Отправка сообщений в Telegram-канал
- Создание Telegram бота на PHP: Создание меню для Телеграм бота. Урок 7
- Создание Telegram бота на PHP: Кнопки в телеграм боте. Урок 6
- Создание Telegram бота на PHP: Загрузка и скачивание видео. Урок 5
- Создание Telegram бота на PHP: Отправка и сохранение файлов. Урок 4
- Создание Telegram бота на PHP: Отправка и получение сообщений. Урок 2
- Создание Telegram бота на PHP: Регистрация бота и создание чата. Урок 1
- Создание Telegram бота на PHP: Подготовка к разработке бота. Вступление
Источник: d-nik.site
Добавить изображения и другие вложения в чат-бота
Максимальное число вложений в рассылке — 10 картинок или GIF.
Сумма ширины и высоты любого из изображений не должна превышать 10 000 px. Минимальный размер — 2 px.
Например, если и высота и ширина картинки — 400 px, их сумма будет 400+400 = 800 px., значит, изображение подходит.
Использование вложений снижает максимальное количество символов текста до 1024. Если дополнительно добавить кнопки, вложенных картинок можно будет вставить не более одной. Ограничения связаны с особенностями Telegram.
Как добавить вложения в сценарий чат-бота (в чат-карту)
Перейдите к редактированию вашего бота. Для этого выберите нужного бота в разделе «Чат-боты» или создайте нового.
Добавить вложения можно в блоках:
- «Сообщение».
- «Меню».
- «Сбор контактов».
Чтобы добавить вложение, нажмите в настройках блоков на значок скрепки справа.
Также можно перетащить файл в область текста сообщения и дождаться загрузки.
Чтобы поменять картинки местами, зажмите и перетащите картинку в нужное место.
Для удаления картинки нажмите на крестик в правой верхней части картинки.
Картинки добавлены. В чат-карте это будет выглядеть так.
Как добавить вложения в рассылку
Для создания рассылки перейдите в раздел «Чат-боты — Рассылки».
Нажмите справа «Создать рассылку».
Чтобы добавить вложение в поле сообщения, нажмите справа на значок скрепки.
Также можно просто перетащить картинку или гифку в поле контента рассылки и подождать загрузки.
Для удаления отдельного изображения наведите курсор на файл и нажмите на крестик.
Для удаления всех картинок нажмите справа на значок удаления.
При необходимости картинки можно поменять местами. Для этого перетащите картинки в подходящее место.
Как добавить вложение в окне разговора с оператором
Для перехода в окно связи с оператором откройте раздел «Чат-боты» и нажмите «Онлайн-чаты».
Чтобы добавить вложение, нажмите справа внизу на значок скрепки.
Также можно перетащить нужный файл в область общения.
Для удаления отдельных картинок наведите курсор на картинку и нажмите на крестик.
Чтобы удалить все изображения, нажмите справа на значок удаления.
Картинки можно менять местами.
Так вложения будут выглядеть в полученном сообщении в Telegram.
Источник: www.unisender.com
Image Resize
Life is an adventure—enjoy the ride and the world through the eyes of the National Geographic photographers.
Online
Fox News
America’s #1 cable news network, delivering you breaking news, insightful analysis, and must-see videos on Telegram.
Online
M MSN
MSN Bot —
All about FCBarcelona ❤️
✔️ Schedule.
✔️ Full match results.
✔️ Images.
✔️ News.
✔️ And More.
Online
BotoStore — catalog of voice and chatbots, AI https://botostore.com/c/imageresizebot/» target=»_blank»]botostore.com[/mask_link]