Можно ли через форму сайта отправить файл в телеграм?

Появилась идея отправлять файлы с формы обратной связи сайта в телеграм бот.Есть скрипт отправки текста, можно ли реализовать отправку файлов в телеграм?и как, в php не силен.
<?php



$email = $_POST['user_email'];
$message = $_POST['text'];
$txt = "";
$token = "XXXXXXXXXXXXXXXXXXXXXXX";
$chat_id = "XXXXXXX";
$arr = array(
  'Email' => $email,
  'Сообщение' => $message,

);

foreach($arr as $key => $value) {
  $txt .= "<b>".$key."</b> ".$value."%0A";
};

$sendToTelegram = fopen("https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text={$txt}","r");

if ($sendToTelegram) {
  header('Location: thank-you.html');
} else {
  echo "Error";
}
?>
  • Вопрос задан
  • 1724 просмотра
Решения вопроса 1
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
Да, можно. Используйте метод sendDocument из bot api. Всё аналогично тому как вы используете сейчас sendMessage.

https://core.telegram.org/bots/api#senddocument
https://core.telegram.org/bots/api#inputfile
https://core.telegram.org/bots/api#sending-files

Лимит на загрузку файлов через bot-api - 50Мб

Если нужно отправлять файлы больше 50Мб, то используйте MTProto (оффиц. протокол) и тогда лимит на аплоад будет 1.5Гб
биндинг MTProto на PHP https://github.com/danog/MadelineProto
https://docs.madelineproto.xyz/docs/FILES.html#upl...

Если в принципе нет понимания как изначально принять отправленный через форму файл, чтобы потом заслать его в телеграм то почитайте про $_FILES
https://www.w3schools.com/php/php_file_upload.asp
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Karpion
Что значит "отправлять {...} в телеграм бот"? Что это за бот, где он работает (на той же машине, что и сайт; или где-то на др.машине, доступной через сеть)?

В общем случае - файл можно преобразовать в текст (методы преобразования - Base64, UUEncode). Отправляемые боту данные можно оформить в таком виде, чтобы тот мог понять, где что (например, MIME). Упомянутые в ответе методы - используются в эл.почте и в HTTP.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы