SMS API
CreateMediaFromContent
This method adds a media file to a license key using the media’s binary representation.
Endpoint
POST:https://messaging.esendex.us/Messaging.svc/CreateMediaFromContent
Syntax
CreateMediaFromContent(Request)
Request Parameters
Parameter Name | Description | Data Type | Required | Sample Value |
---|---|---|---|---|
Base64EncodedContent | Content of the media file to create. This is binary data that is encoded as a string of base-64 digits. | String | True | |
FileName | Name of the media file to create. | String | True | MonkeyPic.jpg |
LicenseKey | Your license key. | GUID | True | 00000000-0000-0000-0000-000000000000 |
Tags | Category of the media file. | Array of String values | False | animal |
Response
Returns: MediaMetadata
object
Code Samples
You can use any programming language you want with our API, as long as it can make a REST or SOAP call. Here are examples for some of the most common platforms.
- C#
- Java
- JavaScript
- JSON POST Request
- JSON Response
- PHP with cURL
- Python
- Ruby
- XML POST Request
- XML Response
C#
// https://messaging.esendex.us/Messaging.svc?wsdl was added as a Service Reference and given the name WSDL
using WSDL;
var client = new MessagingClient(MessagingClient.EndpointConfiguration.mms2wsHttpBindingSecure);
var request = new CreateMediaContentRequest
{
Base64EncodedContent = "iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAGdYAABnWARjRyu0AAAASSURBVBhXY3gro4IVDSkJGRUAmbtLQUb26xsAAAAASUVORK5CYII=",
Filename = "MyPhoto.jpg",
LicenseKey = YOUR_LICENSE_KEY,
Tags = new[] { "Photo" }
};
var media = await client.CreateMediaFromContentAsync(request);
if (media is null)
{
Console.WriteLine("The media could not be created.");
return;
}
Console.WriteLine(
"UTC File Date: " + media.FileDate + Environment.NewLine +
"File Name: " + media.FileName + Environment.NewLine +
"File Size: " + media.FileSize + Environment.NewLine +
"Media ID: " + media.MediaId + Environment.NewLine +
"Mime Type: " + media.MimeType
);
foreach (var tag in media.Tags)
{
Console.WriteLine("Tags: " + tag);
}
Java
import java.io.File;
import java.io.PrintWriter;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.HttpURLConnection;
import org.apache.commons.io.IOUtils;
public final class CreateMediaFromContent {
public static void main(String[] args) throws Exception {
String responseContent = "";
String response = "";
String decoded = IOUtils.toString(new FileInputStream(new File("C:\\Users\\Desktop\\Base64.txt")), "UTF-8");
URL url = new URL("https://messaging.esendex.us/Messaging.svc/CreateMediaFromContent");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
StringBuilder sb = new StringBuilder("<CreateMediaContentRequest xmlns=\"https://messaging.esendex.us\">");
sb.append("<Base64EncodedContent>").append(decoded).append("</Base64EncodedContent>");
sb.append("<Filename>JavaMonkey.jpg</Filename>");
sb.append("<LicenseKey>00000000-0000-0000-0000-000000000000</LicenseKey>");
sb.append("<Tags>");
sb.append("<string xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\">Monkey</string>");
sb.append("</Tags>");
sb.append("</CreateMediaContentRequest>");
connection.setRequestProperty("Content-Length", String.valueOf(sb.toString().length()));
connection.setRequestProperty("Content-Type", "text/xml");
connection.setRequestProperty("Connection", "Close");
connection.setRequestProperty("SoapAction", "");
connection.setRequestMethod("POST");
connection.setDoInput(true);
connection.setDoOutput(true);
PrintWriter pw = new PrintWriter(connection.getOutputStream());
pw.write(sb.toString());
pw.flush();
connection.connect();
System.out.println(sb.toString());
BufferedReader br;
if (connection.getResponseCode() == 200) {
br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
} else {
br = new BufferedReader(new InputStreamReader(connection.getErrorStream()));
}
while ((responseContent = br.readLine()) != null) {
response += responseContent;
}
System.out.println(response);
}
}
JavaScript
const url = 'https://messaging.esendex.us/Messaging.svc/CreateMediaFromContent';
const response = await fetch(url, {
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
'Base64EncodedContent': 'iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAGdYAABnWARjRyu0AAAASSURBVBhXY3gro4IVDSkJGRUAmbtLQUb26xsAAAAASUVORK5CYII=',
'Filename': 'MyPhoto.jpg',
'LicenseKey': '00000000-0000-0000-0000-000000000000',
'Tags': ['Photo']
}),
method: 'POST'
});
const messages = await response.json();
console.log(messages);
JSON POST Request
{
"Base64EncodedContent": "String content",
"Filename": "String content",
"LicenseKey": "1627aea5-8e0a-4371-9022-9b504344e724",
"Tags": [
"String content"
]
}
JSON Response
{
"FileDate": "\/Date(928164000000-0400)\/",
"FileName": "String content",
"FileSize": 9223372036854775807,
"MediaId": 9223372036854775807,
"MimeType": "String content",
"Tags": [
"String content"
]
}
PHP with cURL
<?php
$json = '{
"Base64EncodedContent":"aa/9j/4AAQSkZJRgABAQAAAQABAAD/2Q==",
"Filename":"monkey.jpg",
"LicenseKey":"00000000-0000-0000-0000-000000000000",
"Tags":["Monkey"]
}';
$url = 'https://messaging.esendex.us/Messaging.svc/CreateMediaFromContent';
$cURL = curl_init();
curl_setopt($cURL, CURLOPT_URL, $url);
curl_setopt($cURL, CURLOPT_POST, true);
curl_setopt($cURL, CURLOPT_POSTFIELDS, $json);
curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true);
curl_setopt($cURL, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Accept: application/json'));
// If you desire your results in XML format, use the following line for your HTTP headers and comment out the HTTP headers code line above.
// curl_setopt($cURL, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
$result = curl_exec($cURL);
curl_close($cURL);
$array = json_decode($result, true);
// print_r($json);
// print_r("\n\n\n\n");
print_r($array);
?>
Python
import httpx
headers = {"Accept": "application/json"}
url = "https://messaging.esendex.us/Messaging.svc/CreateMediaFromContent"
request = {
"Base64EncodedContent": "iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAGdYAABnWARjRyu0AAAASSURBVBhXY3gro4IVDSkJGRUAmbtLQUb26xsAAAAASUVORK5CYII=",
"Filename": "MyPhoto.jpg",
"LicenseKey": "00000000-0000-0000-0000-000000000000",
"Tags": ["Photo"],
}
with httpx.Client(headers=headers) as client:
response = client.post(url=url, json=request)
response.raise_for_status()
if response.text == "":
raise RuntimeError("The media could not be created.")
print(response.json())
Ruby
require 'json'
require 'net/http'
headers = { Accept: 'application/json', 'Content-Type': 'application/json' }
uri = URI('https://messaging.esendex.us/Messaging.svc/CreateMediaFromContent')
data = {
'Base64EncodedContent': 'iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAGdYAABnWARjRyu0AAAASSURBVBhXY3gro4IVDSkJGRUAmbtLQUb26xsAAAAASUVORK5CYII=',
'Filename': 'MyPhoto.jpg',
'LicenseKey': '00000000-0000-0000-0000-000000000000',
'Tags': ['Photo']
}.to_json
response = Net::HTTP.post(uri, data, headers)
raise response.message if response.is_a?(Net::HTTPClientError) || response.is_a?(Net::HTTPServerError)
puts JSON.parse(response.body)
XML POST Request
<CreateMediaContentRequest xmlns="http://sms2.cdyne.com">
<Base64EncodedContent>String content</Base64EncodedContent>
<Filename>String content</Filename>
<LicenseKey>1627aea5-8e0a-4371-9022-9b504344e724</LicenseKey>
<Tags>
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">String content</string>
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">String content</string>
</Tags>
</CreateMediaContentRequest>
XML Response
<MediaMetadata xmlns="http://sms2.cdyne.com">
<FileDate>1999-05-31T11:20:00</FileDate>
<FileName>String content</FileName>
<FileSize>9223372036854775807</FileSize>
<MediaId>9223372036854775807</MediaId>
<MimeType>String content</MimeType>
<Tags>
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">String content</string>
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">String content</string>
</Tags>
</MediaMetadata>
Let’s start sending, together.