Как получить тело страницы после запроса POST

#php #request #telegram #telegram-bot

#php #запрос #telegram #telegram-бот

Вопрос:

Я пытаюсь создать страницу PHP, которая позволяет загружать документ на серверы telegram, а затем восстанавливает file_id, который хранится в json страницы перенаправления. После нескольких руководств по YT это код:

 <?php
    $botToken = "1099xxxxxx:AxxxE-g9qDI2Uxxxxxxxxxxxxxxxxxxxxxxxx";
    $website = "https://api.telegram.org/bot".$botToken;
?>

<form action="<?php echo $website.'/sendPhoto' ?>" method="post" enctype="multipart/form-data">
    <input type="text" name="chat_id" value="mychatid">
    <input type="file" name="photo">
    <input type="submit" value="send">
</form>
  

Перенаправление после отправки

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

Спасибо!

Комментарии:

1. Что file_id ? На вашем скриншоте их как минимум 2.

Ответ №1:

Вы отправляете запрос в Telegram API из браузера, отправляя форму непосредственно в него.

Ваш PHP никак не может получить какую-либо информацию из этого API таким образом.

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

Вам нужно, чтобы браузер отправил форму в управляемую вами PHP-программу, а затем отправил запрос в Telegram API из вашего PHP, а не из браузера.

Обычный способ сделать это — с помощью библиотеки cURL.

Комментарии:

1. Спасибо, теперь я могу восстановить формат, подобный json, с $result = curl_exec($curl); но я хочу получить доступ к реквизиту file_id. Я пытался декодировать с $decoded = json_decode($result, true); , но, похоже, это не работает. Как я могу это сделать?