I Ubivox har du adgang til et API, så din (web)applikation kan tale direkte med vores systemer.
Her følger et eksempel på hvordan det kan gribes an i PHP. Eksemplet gør brug af Zends framework, som kan hentes på zend.com. Hent Zend Framework Minimal og pak det ud i en mappe for sig. Sæt include-path til at pege på library-mappen, og kør dernæst et par Zend-tryllerier:
set_include_path(‘/sti/til/ZendFramework-1.10.8-minimal/library/’);
require_once(‘Zend/Loader/Autoloader.php’);
Zend_Loader_Autoloader::getInstance();
Ret følgende defines til:
define(‘USERNAME’, ‘username-til-API’);
define(‘PASSWORD’, ‘password-til-API’);
define(‘LIST_ID’, 42);
Følgende kodestump instantierer $client-objektet, så det kan bruges til kommunikation med servicen.
define(‘HOSTNAME’, ‘https://’.USERNAME.’.clients.ubivox.com/xmlrpc/’);
$http = new Zend_Http_Client(HOSTNAME, array(‘keepalive’=>true));
$http->setAuth(USERNAME, PASSWORD, Zend_Http_Client::AUTH_BASIC);
$client = new Zend_XmlRpc_Client(HOSTNAME, $http);
Nu har du forhåbentlig forbindelse til API’et. Dernæst kan du køre følgende, som henter information om modtageren foo@eksempel.dk:
try {
$response = $client->call(‘ubivox.get_subscriber’,
array(‘foo@eksempel.dk’));
var_dump($response);
} catch (Zend_XmlRpc_Client_FaultException $e) {
var_dump($e);
}
Vil du kalde f.eks. create_subscription kan du gøre som følger:
try {
$client->call(‘ubivox.create_subscription’,
array(‘foo@eksempel.dk’, LIST_ID, true));
} catch(Zend_XmlRpc_Client_HttpException $e) {
// Connection error
var_dump($e);
} catch(Zend_XmlRpc_Client_FaultException $e) {
switch($e->getCode()) {
case 1003: // Allready subscribed on this list in ubivox
break;
case 2001: // Invalid mailing list
break;
case 1001: // E-mail address is invalid
break;
}
} catch(Exception $e) {
// Unknown error
var_dump($e);
}
// The subscription was created
Komplet dokumentation til Ubivox’ API kan du finde under menupunktet Konto. Dokumentation til Zends XMLRPC-framework kan du finde på zend.com – søg efter xmlrpc.