Перейти к содержанию

DownloadFile#

Test Postman Apidog

Метод предназначен для скачивания принятых и отправленных файлов.

Ссылки на файлы можно получить через:

Полученные от MAX файлы скачиваются и хранятся в хранилище Green-API 15 дней.
По истечении срока хранения ссылка будет сформирована повторно и обновится в журналах.

Для метода используются ограничения на частоту запросов в секунду.

Запрос#

POST
{{apiUrl}}/v3/waInstance{{idInstance}}/downloadFile/{{apiTokenInstance}}

Для получения параметров запроса apiUrl, idInstance и apiTokenInstance обратитесь к разделу Перед началом работы.

Параметры запроса#

Параметр Тип Обязательный Описание
chatId string Да Идентификатор личного или группового чата историю сообщений которого требуется получить
idMessage string Да Идентификатор сообщения

Пример тела запроса#

{
    "chatId": "10000000",
    "idMessage": "115206687571465794"
}

Ответ#

Поля ответа#

Поле Тип Описание
downloadUrl string Ссылка на файл из сообщения

Пример тела ответа#

Успешное выполнение метода#

{
    "downloadUrl": "https://sw-media.storage.yandexcloud.net/3100000000/a6679d42-2f7f-4121-acfe-1f993dfcf123.png"
}

Выполнение метода с ошибкой#

status code 400

{
"File message encrypted url not found by chatId 10000000 and idMessage 115206687571465794"
}

Ошибки 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 10000000 and idMessage 115206687571465794 Файл отсутствует в сообщении
500 Internal error when downloading file by chatId 10000000 and idMessage 115206687571465794 Файл не доступен на серверах MAX, загрузка через API невозможна

Примеры кода#

import requests
import json

url = "{{apiUrl}}/v3/waInstance{{idInstance}}/downloadFile/{{apiTokenInstance}}"

payload = json.dumps({
  "chatId": "10000000",
  "idMessage": "115206687571465794"
})
headers = {
  'Content-Type': 'application/json'
}

response = requests.post(url, json=payload)

print(response.text)
curl --location -g --request POST '{{apiUrl}}/v3/waInstance{{idInstance}}/downloadFile/{{apiTokenInstance}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "chatId": "10000000",
    "idMessage": "115206687571465794"
}'
var restTemplate = new RestTemplate();
var requestUrl = new StringBuilder();
requestUrl
    .append({{apiUrl}})
    .append("/v3/waInstance").append({{idInstance}})
    .append("/downloadFile/")
    .append({{apiTokenInstance}});

var headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);

var jsonBody = "{\"chatId\": \"10000000\",\"idMessage\": \"115206687571465794\"}";

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("/v3/waInstance").append({{idInstance}})
    .append("/downloadFile/")
    .append({{apiTokenInstance}});

var response = Unirest.post(requestUrl.toString())
    .header("Content-Type", "application/json")
    .body("{\"chatId\": \"10000000\",\"idMessage\": \"115206687571465794\"}")
    .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}}/v3/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"":""10000000"",""idMessage"":""115206687571465794""}"

    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