Telegram bot weird error: Bad Request: неверный идентификатор файла / указанный URL-адрес HTTP

Я отправляю сообщение на канал телеграммы, используя бота.

С использованием метода webhook.

Я отправляю file_id по ссылке. Я получил file_id из сообщения канала.

Для некоторых файлов, таких как формат GIF и видео (MP4),

когда я использую этот код:

$url = 'https://api.telegram.org/bot'.token.'/sendVideo?chat_id='.uid."&video=".$file."&caption=" .urlencode($caption); file_get_contents($url); 

я получаю такую ​​ошибку:

 {"ok":false,"error_code":400,"description":"Bad Request: wrong file identifier/HTTP URL specified"} 

Я действительно не знаю, почему я это понимаю. Это похоже на случайность для ошибок, потому что код зависит от того, что я думаю.

Я использую file_id, который у меня есть из сообщения канала.

В чем причина этой ошибки? Неверный запрос: неверный идентификатор файла / указанный URL-адрес HTTP

  • Я искал все связанные темы, я не нашел никакой хорошей информации.

Существует много возможных причин для этого, как указано в документации :

  • Невозможно изменить тип файла при повторной отправке с помощью file_id. т.е. видео не может быть отправлено в виде фотографии, фотография не может быть отправлена ​​в качестве документа и т. д.
  • Невозможно повторно отправить эскизы.
  • Повторная отправка файла файлом file_id отправит все его размеры.
  • file_id уникален для каждого отдельного бота и не может быть перенесен с одного бота на другой.

Ваш тент здесь @farzad

Отправка по файлу
file_id уникален для каждого отдельного бота и не может быть перенесен с одного бота на другой.

Если вы отправите файл (фото, аудио, …) боту, вы получите действительный file_id для этого файла (для вашего бота). Это должно быть безопасно использовать этот идентификатор для отправки файла, но, похоже, он не работает для некоторых файлов (аудио, видео, …) !! (Может быть ошибкой API Telegram).

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