Можно ли отправлять RingCentral SMS / MMS, используя multipart/form-data?

Спецификация OpenAPI для конечной точки создания SMS-сообщения включает следующие типы содержимого запроса:

  consumes:
  - application/json
  - multipart/mixed
  - multipart/form-data

Я обнаружил, что инструкции по SMS/MMS включают пример multipart/mixed в Справочник по API, но не вижу никакой информации об использовании multipart/form-data. Меня особенно интересует отправка файлов.

https://developers.ringcentral.com/api-reference/SMS/createSMSMessage

В том же справочнике по API показана поддержка как multipart/form-data, так и multipart/mixed для отправки факсов.

https://developers.ringcentral.com/api-reference/Fax/createFaxMessage

Поскольку оба API отправляют файлы и метаданные, мне интересно, поддерживает ли API SMS также multipart/form-data и, если да, как его отправить?


person Grokify    schedule 05.08.2019    source источник


Ответы (2)


Нет, так не кажется.

В примере, который вы связали для SMS-сообщения, используется multipart/mixed для отделения самого вызова API (который, в свою очередь, отправляется как application/json) от полезной нагрузки, отправляемой в виде MMS (image/png).

Использование multipart/form-data в факсимильном API зависит от способа включения конкретных метаданных, но не существует эквивалентной системы для SMS/MMS, поскольку им обоим требуется эта конкретная метаинформация, закодированная либо как отдельный документ JSON, либо как файл JSON. элемент сообщения multipart/mixed.

Однако для отправки файла подойдет multipart/mixed. Тогда ваш запрос будет выглядеть примерно так:

POST /restapi/v1.0/account/403391985008/extension/403391985008/sms
Content-Type: multipart/mixed; boundary=Boundary_1_14413901_1361871080888

--Boundary_1_14413901_1361871080888
Content-Type: application/json; charset=UTF-8
Content-Transfer-Encoding: 8bit

{"to" :[{"phoneNumber": "+18772004569"},{"phoneNumber": "+18772094569"}],
"text" :"hello",
"from" :{"phoneNumber": "+18882004237"}}

--Boundary_1_14413901_1361871080888
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="filename.zip"

[Some encoded binary stream here ...]

--Boundary_1_14413901_1361871080888--

Вы должны правильно установить тип mime файла и убедиться, что все закодировано. Ключевым моментом здесь является то, что информация сообщения закодирована в первом компоненте JSON в составном сообщении, а файл, прикрепленный к MMS, закодирован во втором.

person EAMann    schedule 23.08.2019

multipart/form-data можно отправить, как показано в следующем примере:

POST / HTTP/1.1
HOST: platform.ringcentral.com/restapi/v1.0/account/~/extension/~/sms
Authorization: Bearer <MyToken>
Content-Type: multipart/form-data; boundary=12345

--12345
Content-Disposition: form-data; name="to"

+16505550101
--12345
Content-Disposition: form-data; name="to"

+16505550102
--12345
Content-Disposition: form-data; name="from"

+16505550100
--12345
Content-Disposition: form-data; name="text"

Hello World
--12345
Content-Disposition: form-data; name="attachment" filename="picture.jpg"

content of picture.jpg ...
--12345--

Это можно сделать с помощью curl следующим образом:

curl -XPOST https://platform.ringcentral.com/restapi/v1.0/account/~/extension/~/sms \
-H 'Authorization: Bearer <MyToken>' \
-F 'to=+16505550101' \
-F 'to=+16505550102' \
-F 'from=+16505550100' \
-F 'text=Hello World' \
-F '[email protected]'
person Grokify    schedule 25.08.2019