Как я могу получить file_path бота telegram
У меня есть сообщение от бота телеграммы
{
"update_id":236420475,
"message":{
"message_id":26577,
"from":{
"id":xxxxxxxx,
"first_name":"DB",
"last_name":"Ks",
"username":"xxxxxxxx"
},
"chat":{
"id":193044649,
"first_name":"DB",
"last_name":"Ks",
"username":"xxxxxxxx",
"type":"private"
},
"date":1493266832,
"voice":{
"duration":2,
"mime_type":"audio/ogg",
"file_id":"AwADBQADBAADQKMIVC978KStO6ZhAg",
"file_size":7532
}
}
}
Из документации API бота telegram есть путь к файлу, указанный для загрузки файла. Как я могу получить file_path или любой API для получения file_path с помощью file_id?
3 ответа
Вы можете скачать файл в 2 этапа:
- вызов
getFile()
, в ответ вам будет дан ответ, как Алексей Шабловский показал выше, гдеfile_path
возвращается со значением ответа - используйте этот путь к файлу для вызова конечной точки загрузки файла.
Ex. скажем, ваш токен аутентификации бота: 1234:abcd
и file_id: ' xyz890
' getFile request:
https://api.telegram.org/bot1234:abcd/getFile?file_id=xyz890
ответ:
{
"ok": true,
"result":
{
"file_id": "xyz890",
"file_size": 911,
"file_path": "photos/file_name.jpg"
}
}
Теперь получите file_path
строковое значение и создайте свою полную загружаемую ссылку:
https://api.telegram.org/file/bot1234:abcd/photos/file_name.jpg
Это просто:
запрос:
https://api.telegram.org/bot<token>/getFile?file_id=<file_id>
ответ:
{
"ok": true,
"result": {
"file_id": "---",
"file_size": 999,
"file_path": "photos/file_59.jpg" <<--- file_path
}
}
Я хочу отобразить изображение в reply_markup. Нормальные изображения (веб-изображения) отображаются, но загружаемая ссылка ( https://api.telegram.org/file/bot1234:abcd/photos/file_name.jpg) не отображается