Как я могу получить 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 этапа:

  1. вызов getFile(), в ответ вам будет дан ответ, как Алексей Шабловский показал выше, где file_path возвращается со значением ответа
  2. используйте этот путь к файлу для вызова конечной точки загрузки файла.

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


API подробно

Это просто:

запрос:

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
  }
}

Вы должны попытаться сделать это методом getFile, который возвращает объект File. Просто возьмите поле file_path из File и используйте его.

Я хочу отобразить изображение в reply_markup. Нормальные изображения (веб-изображения) отображаются, но загружаемая ссылка ( https://api.telegram.org/file/bot1234:abcd/photos/file_name.jpg) не отображается

Другие вопросы по тегам