2017-03-09 40 views
5

Wysyłam wiadomość do kanału telegramu za pomocą bota.Dziwny błąd telegramu: Błędne żądanie: błędny identyfikator pliku/URL HTTP określony

Przy użyciu metody webhook.

Wysyłam file_id przez link. Mam plik file_id z wpisu kanału.

Dla niektórych plików, takich jak GIF & formatu wideo (MP4),

kiedy używam tego kodu:

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

file_get_contents($url); 

mogę dostać taki błąd:

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

naprawdę don” t wiem, dlaczego to rozumiem, To jest przypadkowe dla błędów, ponieważ kod jest zależny od niczego, jak sądzę.

Używam file_id, który mam z postu kanału.

Jaki jest powód tego błędu? Bad Request: niewłaściwy plik URL identyfikator/HTTP określony

  • Przeszukałem wszystkie powiązane tematy, Znalazłem ma dobrych informacji.
+0

Jak otrzymałeś identyfikator pliku? Przez ten sam bot, z którym próbujesz wysłać wideo? – ManzoorWani

Odpowiedz

5

Istnieje wiele możliwych przyczyn tego, jak wspomniano w documentation:

  • To nie jest możliwe, aby zmienić typ pliku po ponownym wysłaniem przez file_id. np. wideo nie może zostać wysłane jako zdjęcie, zdjęcie nie może zostać wysłane jako dokument itp.
  • Nie można ponownie wysłać miniatur.
  • Ponowne wysłanie zdjęcia według file_id spowoduje wysłanie wszystkich jego rozmiarów.
  • file_id jest unikalny dla każdego pojedynczego bota i nie może zostać przeniesiony z jednego bota na drugiego.
1

Jeśli prześlesz plik (zdjęcie, dźwięk, ...) do bota, dostaniesz poprawny file_id dla tego pliku (dla twojego bota). Powinno być bezpieczne używanie tego identyfikatora do wysyłania pliku, ale wygląda na to, że nie działa w przypadku niektórych plików (audio, wideo, ...) !! (Może to być błąd interfejsu Telegram API).

Możesz pobrać i ponownie załadować plik do swojego bota, aby uzyskać nowy file_id i ten identyfikator zadziała.

+0

Pojawia się, jeśli plik jest zbyt duży, daje identyfikator, ale go nie zapisuje. Trochę irytujące. – PixMach

4

Twój Awnser jest here @farzad

Wysyłanie przez file_id
file_id jest unikalny dla każdego bota i nie mogą być przenoszone z jednego bota na inny.

+0

Muszę użyć mojego własnego bota file_id! – EmRa228