In Telegramm-API-Dokumentation sehe ich: "Sie können entweder eine file_id als String übergeben, um ein Foto, das bereits auf den Telegram-Servern ist, erneut zu senden, aber ich finde keine Möglichkeiten, file_id der hochgeladenen Datei zu erhalten. Wie kann ich es bekommen?Wie Telegramm Bot Datei_id der hochgeladenen Datei erhalten kann?
Antwort
Je nach der Methode (Dateityp), die Sie zum Senden einer Datei ausgewählt haben, wird nach dem Senden einer Datei an das Telegramm eine Antwort zurückgegeben. Wenn Sie beispielsweise eine MP3-Datei mit der Methode sendAudio
an das Telegramm senden, gibt das Telegramm ein Objekt Audio
zurück, das die Datei-ID enthält. Quelle: https://core.telegram.org/bots/api#audio
Sagen Sie bitte eine Message
mit einer Reihe von PhotoSize
https://core.telegram.org/bots/api#photosize
erhalten Wie Sie sehen können, gibt es eine file_id
, können Sie diese verwenden, um ein Foto durch sendPhoto
zu senden.
Wenn wir annehmen, Update
ist ein Objekt, mit darin ein Message
Objekt, das wiederum ein Chat
Objekt mit drin, wo eine id
des Chat bietet die erste Nachricht aus und eine Reihe von PhotoSize
kam (entschuldigen Sie mich für die Verwendung von PHP hier, aber das ist meine Hauptsprache ...)
$update->message->photo
ist, wie Sie auf das Array zugreifen können. eine Art von Verwendung Für Schleife über die Elemente zu durchlaufen, oder einfach nur den ersten Zugriff, wenn das Array als 1 nicht größer ist
Danach können Sie das Ergebnis (se) die file_id
zu extrahieren und senden es als string
über sendPhoto
photo
Parameter und die Chat-ID über die chat_id
Parameter.
Ich hoffe, das hat geholfen!
P.S. Here ist ein Diagramm meiner aktuellen Implementierung der API, ich hoffe, es bringt Ihnen etwas Klarheit!
Sein abhängig zu Ihrem content_types, zum Beispiel:
Video:
message.video.file_id
Audio:
message.audio.file_id
Foto:
message.photo[2].file_id
Weitere sehen this Link.