getWorking
getSending
getLastSent
createMailing
getLinkedHeader
linkHeader
unlinkHeader
getLinkedFooter
linkFooter
unlinkFooter
getLinkedCustomer
linkCustomer
unlinkCustomer
getLinkedCategory
linkCategory
unlinkCategory
getLinkedTarget
linkTarget
unlinkTargets
pushDem
trackLinks
sendTest
scheduleMailing
unscheduleMailing
deleteMailing
getAvailableFields
getAvailableLista
addLista
getUser
getLastdaysActive
addUser
updateUser
unsubscribeUser
removeUser
API call are REST based and input data is Json Encoded, a PHP sample to create a call is available at the end of this page. In order to simplify the caling process, the authentication process is based on a simple token and the HTTP method implemented are only 2: GET and POST.
The base url to call is
https://rest.be-mail.it/
The token is sent to the server using the HTTP header X-bemail-auth
The token is generated with the following rule:
base_64({ API ID }_{ USER }_MD5([ PASSWORD ][ APIKEY ][YYYYMMDD]))
Variable | Description |
---|---|
API ID | Unique Console API ID assigned at startup |
APIKEY | a code assigned at API activation time |
USER | username used to log-in on beMail |
PASSWORD | password used to log-in on beMail |
YYYYMMDD | date of the request |
The API have a documentation of each call that can be used to manage entities. The documentation is linked to a simple "API explorer" that permit you to call the API directly from the web.
Is also possible to use the entity Docs to get the documentation using the API itself.
In order to send a mailing from API ths list of calls needs to be executed:
Api Call |
---|
mailing/createMailing |
mailing/linkHeader |
mailing/linkFooter |
mailing/pushDem |
mailing/tackLinks (non mandatory) |
mailing/linkTarget |
mailing/sendTest |
mailing/scheduleMailing |
The API answer of every call is a json encoded structure. It can contain an error or a return value.
The error structure will be:
{
"error":
{
"message":[Error message],
"type":[Error type],
"code":[Error code]
}
}
The success structure will be:
{
"code":200,
"response":[response of each call]
}
Note.The answer of each call can be tested using the API explorer.
/* * Require BeMail Api Calss */ require_once 'bemail_api.php'; /* * Config Api Request */ $config = array('id'=>'ID', 'key'=>'KEY', 'username'=>'USERNAME', 'password'=>'PASSWORD', 'version'=>'v1' ); /* * Create Object Api BeMail */ $api = new bemail_api($config); /* * Api request * 1° param => Request type (POST - GET) * 2° param => Request (Es° 'customer/getAll') * 3° param => Fields Post, "can be empty", (Es° array('key'=>'value')) * */ $json = $api->apiRequest('POST', 'mailing/sendTest', array('id_mailings'=>'123', 'email_list'=>array('email1@test.com', 'email2@bemail.it' ) ) );
/* * BeMail Api * Version 1.0.0 * */ class bemail_api { private $id; private $api_key; private $user; private $password; private $token; private $version; private $request_url; private $url; function __construct($config) { $this->request_url = "https://rest.be-mail.it/"; $this->id = $config['id']; $this->api_key = $config['key']; $this->user = $config['username']; $this->password = $config['password']; $this->version = $config['version']; } public function apiRequest($method = null, $request = null, $fields_post = null) { $this->generateHash(); $this->generateRequestUrl($request); $method = strtoupper($method); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $this->url); if(isset($method) && !empty($method) && $method = 'POST' && isset($fields_post) && is_array($fields_post)) { curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields_post)); } curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-bemail-auth: '.$this->token)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $json = curl_exec($ch); curl_close($ch); return $json; } private function generateHash() { $hash = md5($this->password.$this->api_key.date('Ymd')); $this->token = base64_encode($this->id.'_'.$this->user.'_'.$hash); } private function generateRequestUrl($request) { $this->url = $this->request_url.'/'.$this->version.'/'.$request; } }
Type SDK | Version | Download |
---|---|---|
PHP | 1.0.0 | Download SDK |