API til integration – eksempel i PHP

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.

Related Articles

Leave A Comment?