GET graph.user.fileUploadUrl
Получение URL для загрузки файла в чат
Название | Обязательный | Тип | Значение по умолчанию | Описание |
---|---|---|---|---|
type | Нет | | file |
Загрузка и отправление файла в чат осуществляется в три этапа:
- получение URL для загрузки файла;
- загрузка файла через сервис загрузки файлов в чат;
- отправка загруженного файла в чат.
Получение URL для загрузки файла
Для этого используется текущий метод. Передачи каких-либо параметров метод не требует.
Пример запроса
?access_token=tkn18YdUJZe:CQABPOJKAKEKEKEKE
&type=FILE
Есть возможность загрузки файлов следующего типа (указывается в параметре type):
- FILE (значение по умолчанию) - обычный файл;
- VIDEO - видеофайл;
- AUDIO - аудиофайл;
- IMAGE - изображение
Пример ответа
{
"url": "https://fu.mycdn.me/api/upload.do?sig=lS8ThopDldI&expires=1531849335513&clientType=3&id=22125556&userId=123", /* URL для загрузки файла */
"token": "tokenString" /* для создания аттачмента */
"file_id": "1519bf4" /* Временный id файла только для типа IMAGE */
}
Загрузка файла на сервер
При загрузке файлов типа AUDIO и IMAGE в заголовке запроса на загрузку необходимо указывать корректный MIME-type в заголовоке Content-Type
На полученный в предыдущем этапе URL требуется загрузить файл.
Производится это через HTTP POST-запрос, в теле запроса необходимо передавать файл, который требуется загрузить.
В случае аплоада файла типа IMAGE, токен для создания аттачмента возвращается в ответе аплоада файла. См. Шаг 2 – загрузка фотографий через HTTP POST
Отправка файла в чат
После загрузки файла на втором этапе сервису требуется некоторое время (секунды) на обработку файла. Требуется отправлять сообщение, содержащее этот файл, с небольшой задержкой после завершения загрузки
После того как файл был успешно загружен, его можно отослать в любой чат с помощью метода graph.user.messages
Для этого в структуре attachment сообщения надо передать информацию о файле с его типом. Пример такого запроса выглядит так:
{
"recipient":{"chat_id":"chat:C3ecb9d02a600"}, /* ID чата в формате chat:id */
"message":{ /* Содержание сообщения */
"attachment":{
"type":"FILE",
"payload":{"token":"tokenString"} /* Токен файла, полученный на первом этапе или из процесса загрузки фотографий */
}
}
}
С другими форматами attachment-ов можно ознакомиться здесь - POST graph.user.messages