@imandrey

Как передать файл из формы в telegram?

Сделал передачу данных из формы в телеграм по мануалу
Все работает отлично
Хотелось бы добавить возможность еще прикреплять файл
при добавлении поля файл
<form action="telegram.php" method="post" enctype="multipart/form-data">
<input type="text" name="name" />
<input type="file" name="file" />
<input type="submit" value="Отправить" />
</form>


/* https://api.telegram.org/botXXXXXXXXXXXXXXXXXXXXXXX/getUpdates,
где, XXXXXXXXXXXXXXXXXXXXXXX - токен вашего бота, полученный ранее */

//Переменная $name,$phone, $mail получает данные при помощи метода POST из формы
$name = $_POST['name'];
$file = $_POST['file']; 


//в переменную $token нужно вставить токен, который нам прислал @botFather
$token = "****************************";

//нужна вставить chat_id (Как получить chad id, читайте ниже)
$chat_id = "************";

//Далее создаем переменную, в которую помещаем PHP массив
$arr = array(
  
  'Имя пользователя: ' => $name,
  'File: ' => $file

);

//При помощи цикла перебираем массив и помещаем переменную $txt текст из массива $arr
foreach($arr as $key => $value) {
  $txt .= "<b>".$key."</b> ".$value."%0A";
};

//Осуществляется отправка данных в переменной $sendToTelegram
$sendToTelegram = fopen("https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text={$txt}","r");

//Если сообщение отправлено, напишет "Thank you", если нет - "Error"
if ($sendToTelegram) {
  echo "OK";
} else {
  echo "Error";
}


файл не передается
  • Вопрос задан
  • 97 просмотров
Пригласить эксперта
Ответы на вопрос 1
dyuriev
@dyuriev
A posteriori
кастомные (не аудио/видео/фото) файлы отправляются через метод sendDocument, а не через sendMessage, как в вашем примере

Подробно прочитать мы можете так же в документации
Ответ написан
Ваш ответ на вопрос

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

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