Отправка в Телеграм бот вложения
Добавлено: 27 июн 2024, 08:33
Доброго времени суток, уважаемые!
Такой кейс, заказчику необходимо отправлять ответ в Телеграм бот, что и было реализовано.
Но он попросил еще чтобы с ответом вместе отправлялась вложение которое которое он вкладывает после поля Ответ.
Я дополнил код функции отправки сообщения для отправки вложения, но там требуется путь файла на сервере
По итогу текст сообщения отправляется а вот вложение в виде фото, нет.
Подскажите как правильно указать путь к файлу вложения на сервере, может у меня тут ошибка?
Или может есть другие варианты?
Сама доработанная функция отправки сообщения с фото
Такой кейс, заказчику необходимо отправлять ответ в Телеграм бот, что и было реализовано.
Но он попросил еще чтобы с ответом вместе отправлялась вложение которое которое он вкладывает после поля Ответ.
Я дополнил код функции отправки сообщения для отправки вложения, но там требуется путь файла на сервере
Код: Выделить всё
// Получаем текущую дату
$currentDate = date('Y-m-d');
// Разбиваем дату на компоненты
list($year, $month, $day) = explode('-', $currentDate);
// Собираем путь до файла вложения
$photo_path = "/uploads/attachments/{$year}/{$month}/{$day}/{$photo_name}";
telegram_sent_photo(VAR_TELEGRAM_BOT_TOKEN_2, $id_tg, $answer, $photo_path);
Подскажите как правильно указать путь к файлу вложения на сервере, может у меня тут ошибка?
Или может есть другие варианты?
Сама доработанная функция отправки сообщения с фото
Код: Выделить всё
function telegram_sent_photo($bot_token, $chat_id, $text, $photo_path) {
// Отправка текста
$url_message = "https://api.telegram.org/bot" . $bot_token . "/sendMessage";
$params_message = [
'chat_id' => $chat_id,
'text' => strip_tags($text, '<b><i><code><pre>'),
'parse_mode' => 'HTML',
'disable_web_page_preview' => 'true',
];
$ch_message = curl_init($url_message);
curl_setopt($ch_message, CURLOPT_HEADER, false);
curl_setopt($ch_message, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch_message, CURLOPT_POST, 1);
curl_setopt($ch_message, CURLOPT_POSTFIELDS, ($params_message));
curl_setopt($ch_message, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch_message, CURLOPT_TIMEOUT, 10);
$result_message = curl_exec($ch_message);
curl_close($ch_message);
// Отправка изображения
$url_photo = "https://api.telegram.org/bot" . $bot_token . "/sendPhoto";
$photo_file = new CURLFile($photo_path);
$params_photo = [
'chat_id' => $chat_id,
'photo' => $photo_file,
'caption' => strip_tags($text, '<b><i><code><pre>'),
'parse_mode' => 'HTML',
];
$ch_photo = curl_init($url_photo);
curl_setopt($ch_photo, CURLOPT_HEADER, false);
curl_setopt($ch_photo, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch_photo, CURLOPT_POST, 1);
curl_setopt($ch_photo, CURLOPT_POSTFIELDS, ($params_photo));
curl_setopt($ch_photo, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch_photo, CURLOPT_TIMEOUT, 10);
$result_photo = curl_exec($ch_photo);
curl_close($ch_photo);
}