DownloadFile#
Метод предназначен для скачивания принятых и отправленных файлов. Ссылки на принятые файлы передаются во Входящих сообщениях, а также их можно получить методом LastIncomingMessages. Ссылки на отправленные файлы можно получить методом LastOutgoingMessages.
Срок хранения файлов и соответственно возможность их первоначального скачивания ограничено временем, которое хранит их у себя WhatsApp
Запрос#
 POST    
 {{apiUrl}}/waInstance{{idInstance}}/downloadFile/{{apiTokenInstance}}
Для получения параметров запроса apiUrl, idInstance и apiTokenInstance обратитесь к разделу Перед началом работы.
Параметры запроса#
| Параметр | Тип | Обязательный | Описание | 
|---|---|---|---|
chatId |  string | Да | Идентификатор личного или группового чата историю сообщений которого требуется получить | 
idMessage |  string | Да | Идентификатор сообщения | 
Ответ#
Поля ответа#
| Поле | Тип | Описание | 
|---|---|---|
downloadUrl |  string | Ссылка на файл из сообщения | 
Пример тела ответа#
{
    "downloadUrl": "https://sw-media.storage.yandexcloud.net/1103912412/a6679d42-2f7f-4121-acfe-1f993dfcf123.png"
}
Ошибки DownloadFile#
Перечень общих для всех методов ошибок смотрите в разделе Стандартные ошибки
| Код HTTP | Идентификатор ошибки | Описание | 
|---|---|---|
| 400 | Bad Request Validation failed |  Ошибка валидации | 
| 400 | Validation failed. Details: 'value' must have at least 2 keys |  Ошибка валидации. Поле value должно содержать минимум 2 символа |  
| 400 | File message encrypted url not found by chatId 790000312312@c.us and idMessage A322F800D3F12CD4858CC947DAFB77A2 |  Файл отсутствует в сообщении | 
| 500 | Internal error when downloading file by chatId 790000312312@c.us and idMessage A322F800D3F12CD4858CC947DAFB77A2 |  Файл не доступен на серверах WhatsApp, загрузка через API невозможна | 
Примеры кода#
import requests
import json
url = "{{apiUrl}}/waInstance{{idInstance}}/downloadFile/{{apiTokenInstance}}"
payload = json.dumps({
  "chatId": "790000312312@c.us",
  "idMessage": "A322F800D3F12CD4858CC947DAFB77A2"
})
headers = {
  'Content-Type': 'application/json'
}
response = requests.post(url, json=payload)
print(response.text)
curl --location -g --request POST '{{apiUrl}}/waInstance{{idInstance}}/downloadFile/{{apiTokenInstance}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "chatId": "79000001234@c.us",
    "idMessage": "A322F800D3F12CD4858CC947DAFB77A2"
}'
var restTemplate = new RestTemplate();
var requestUrl = new StringBuilder();
requestUrl
    .append({{apiUrl}})
    .append("/waInstance").append({{idInstance}})
    .append("/downloadFile/")
    .append({{apiTokenInstance}});
var headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
var jsonBody = "{\"chatId\": \"79000001234@c.us\",\"idMessage\": \"A322F800D3F12CD4858CC947DAFB77A2\"}";
var requestEntity = new HttpEntity<>(jsonBody, headers);
var response = restTemplate.exchange(requestUrl.toString(), HttpMethod.POST, requestEntity, String.class);
System.out.println(response);
var requestUrl = new StringBuilder();
requestUrl
    .append({{apiUrl}})
    .append("/waInstance").append({{idInstance}})
    .append("/downloadFile/")
    .append({{apiTokenInstance}});
var response = Unirest.post(requestUrl.toString())
    .header("Content-Type", "application/json")
    .body("{\"chatId\": \"79000001234@c.us\",\"idMessage\": \"A322F800D3F12CD4858CC947DAFB77A2\"}")
    .asString();
System.out.println(response);
Sub DownloadFile()
    Dim url As String
    Dim RequestBody As String
    Dim http As Object
    Dim response As String
    ' The apiUrl, idInstance and apiTokenInstance values are available in console, double brackets must be removed
    url = "{{apiUrl}}/waInstance{{idInstance}}/downloadFile/{{apiTokenInstance}}"
    ' chatId - personal or group chat identifier whose message history you want to receive, count - number of messages to receive, default value 100
    RequestBody = "{""chatId"":""71234567890@c.us"",""idMessage"":""E5A2563784F535FD43B3B83142E1234E""}"
    Set http = CreateObject("MSXML2.XMLHTTP")
    With http
        .Open "POST", url, False
        .setRequestHeader "Content-Type", "application/json"
        .send RequestBody
    End With
    response = http.responseText
    Debug.Print response
    ' Outputting the answer to the desired cell
    Range("A1").Value = response
    Set http = Nothing
End Sub