DownloadFile#
Метод предназначен для скачивания принятых и отправленных файлов.
Ссылки на файлы можно получить через:
- Входящие уведомления о входящих либо отправленных сообщениях
- Журналы входящих либо отправленных сообщениях
Полученные от 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