Прикрепить файл (картинку) к разговору
Я хотел бы иметь возможность прикрепить файл к беседе, используя REST API. Является ли это возможным? Существуют "вложения" в / messages/{convId} / messages/{itemId}, но можно ли их использовать? Как? Описание этого поля недоступно.
1 ответ
Файловый API Circuit поддерживает загрузку вложений. Как только вы получили свой токен доступа, вы можете отправить сообщение с байтовыми данными. В следующем примере будет загружен файл с именем test.jpg
POST /rest/v2/fileapi HTTP/1.1
Host: local.circuit.com
Authorization: Bearer <access token>
Content-Length: 100
Content-Disposition: attachment; filename="test.jpg"
Cache-Control: no-cache
<your content in binary form here>
Обычно я использую Postman для своих тестов, поскольку он очень прост в использовании и поддерживает генерацию токенов OAuth 2.0 ( https://www.getpostman.com/).
Вы получите результат, который выглядит как
{"fileId":"fb211fd6-df53-4b82-824d-986dac47b3e7","attachmentId":"ZmIyMT..."}
Если вы хотите проверить свою загрузку, вы можете проверить ее через
GET /rest/v2/fileapi?fileid=fb211fd6-df53-4b82-824d-986dac47b3e7 HTTP/1.1
Host: local.circuit.com
Authorization: Bearer <access token>
Cache-Control: no-cache
Что ж, это было легко, теперь, когда вы загрузили файл на сервер, вы должны прикрепить его к элементу беседы. Сегодня мы не поддерживаем ОБНОВЛЕНИЕ, т.е. вам нужно создать новое.
POST /rest/v2/conversations/<conv ID>/messages HTTP/1.1
Host: local.circuit.com
Authorization: Bearer <access token>
Content-Type: application/x-www-form-urlencoded
Cache-Control: no-cache
content=New+Text+Message&attachments=ZmIyMT...
Вы должны передать сгенерированный идентификатор вложения. После выполнения этих запросов файл прикрепляется к беседе.
Если вы пропустите второй шаг, файл не будет связан ни с одним разговором, он будет доступен только пользователю, который инициирует загрузку, и будет автоматически удален в течение следующих 24 - 48 часов.
Надеюсь, это поможет, дайте мне знать, если у вас есть дополнительные вопросы.