GET graph.user.fileUploadUrl ✎ Дополнить на GitHub

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

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

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

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

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

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

https://api.ok.ru/graph/me/fileUploadUrl?access_token=tkn18YdUJZe:CQABPOJKAKEKEKEKE

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

{
  "url": "https://fu.mycdn.me/api/upload.do?sig=lS8ThopDldI&expires=1531849335513&clientType=3&id=22125556&userId=123", /* URL для загрузки файла */
  "file_id": "1519bf4" /* Временный id файла */
}

Загрузка файла на сервер

На полученный в предыдущем этапе URL требуется загрузить файл.

Производится это через HTTP POST-запрос, в теле запроса необходимо передавать файл, который требуется загрузить.

Отправка файла в чат

Внимание! После загрузки файла на втором этапе сервису требуется некоторое время (секунды) на обработку файла. Требуется отправлять сообщение, содержащее этот файл, с небольшой задержкой после завершения загрузки

После того, как файл был успешно загружен, его можно отослать в любой чат с помощью метода graph.user.messages

Для этого в структуре attachment сообщения надо передать информацию о файле с типом FILE. Пример такого запроса выглядит так:

{
  "recipient":{"chat_id":"chat:C3ecb9d02a600"},                     /* ID чата в формате chat:id */
  "message":{                                                       /* Содержание сообщения */
    "attachment":{
      "type":"FILE",
      "payload":{"ref":"fileId"}                                    /* Временный id файла, полученный на первом этапе */
    }
  }
}