web-dev-qa-db-fra.com

Erreur étrange du bot Telegram: Requête incorrecte: identificateur de fichier incorrect/URL HTTP spécifiée

J'envoie un message à la chaîne de télégramme à l'aide de bot.

Avec l'aide de la méthode webhook.

J'envoie file_id via le lien. J'ai le file_id d'un post de canal.

Pour certains fichiers comme le format GIF et vidéo (MP4), 

quand j'utilise ce code:

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

file_get_contents($url);

je reçois une telle erreur:

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

Je ne sais vraiment pas pourquoi je reçois ceci, C'est comme si c'était aléatoire pour les erreurs, parce que le code est dépendant de rien je suppose.

J'utilise file_id que j'ai du message d'une chaîne.

Quelle est la raison de cette erreur? Requête incorrecte: identificateur de fichier incorrect/URL HTTP spécifiée

  • J'ai cherché tous les sujets liés, je n'ai trouvé AUCUNE bonne information.
8
Farzad

Il y a plusieurs raisons possibles à cela, comme mentionné dans la documentation :

  • Il n'est pas possible de changer le type de fichier lors d'un renvoi par id_fichier. c'est-à-dire qu'une vidéo ne peut pas être envoyée en tant que photo, une photo ne peut pas être envoyée en tant que document, etc.
  • Il n'est pas possible de renvoyer des vignettes.
  • Renvoyer une photo par file_id enverra toutes ses tailles.
  • file_id est unique pour chaque bot individuel et ne peut pas être transféré d'un bot à un autre.
9
ManzoorWani

Votre Awnser est ici @farzad

Envoi par id_fichier
file_id est unique pour chaque bot et ne peut pas être transféré d'un bot à un autre.

7

Si vous transférez un fichier (photo, audio, ...) à un bot, vous obtiendrez un file_id valide pour ce fichier (pour votre bot). Il devrait être prudent d’utiliser cet identifiant pour envoyer ensuite un fichier, mais il semble que cela ne fonctionne pas pour certains fichiers (audio, vidéo, ...) !! (Peut-être un bogue de l'API Telegram).

Vous pouvez télécharger et remettre le fichier sur votre bot pour obtenir un nouveau file_id et cet identifiant fonctionnera.

1
Taha Jahangir

Allez à @webpagebot et envoyez-lui une URL vers le fichier. Le cache du télégramme sera invalidé et cela devrait fonctionner. On dirait que c'est un bug sur le serveur.

Dans mon cas, je ne pouvais pas télécharger une image (sous forme d'autocollant), http://.../blabla.webp pas via l'application de télégramme, ni via l'API du télégramme bot.

0
xamgore