简体   繁体   中英

Is it possible to send RingCentral SMS / MMS using multipart/form-data?

The OpenAPI spec for the Create SMS Message endpoint includes the following request content types:

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

I found the SMS / MMS instructions to include a multipart/mixed example in the API Reference, but don't see any information on using multipart/form-data . I'm specifically interested in sending files.

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

The same API Reference shows support for both multipart/form-data and multipart/mixed for sending faxes.

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

Since both APIs send files and metadata so I'm wondering if the SMS API also supports multipart/form-data and, if so, how to send it?

No, it does not appear so.

The example you'd linked for the SMS message uses multipart/mixed to separate the API call itself (which is in turn sent as application/json ) from the payload being sent as an MMS ( image/png ).

The use of multipart/form-data in the fax API is specific to the way that particular metadata is included, but there isn't an equivalent system for SMS/MMS as they both need that particular meta information encoded either as a single JSON document or as the JSON element of a multipart/mixed message.

To send a file , though, multipart/mixed is fine. Your request would then be something like:

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--

It'd be up to you to set the file's mime type properly and ensure things are encoded. The key points here are that the message information is encoded in the first JSON component in your multipart message, while the file attached to the MMS is encoded in the second.

multipart/form-data can be sent as shown in the following example:

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--

This can be done using curl as follows:

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 'attachment=@picture.jpg'

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM