GET graph.user.fileUploadUrl

Получение URL для загрузки файла в чат

НазваниеОбязательныйТипЗначение по умолчаниюОписание
type Нет FileAttachmentType file

Загрузка и отправление файла в чат осуществляется в три этапа:

  • получение URL для загрузки файла;
  • загрузка файла через сервис загрузки файлов в чат;
  • отправка загруженного файла в чат.

Получение URL для загрузки файла

Для этого используется текущий метод. Передачи каких-либо параметров метод не требует.

Пример запроса

https://api.ok.ru/graph/me/fileUploadUrl
   ?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