Client PHP
Installation
Le client PHP s'installe pour le moment en récupérant une archive contenant le client, disponible à l'URL suivante : https://pkg.bluemind.net/pkg/<numéro technique de BM>/clients/
Le numéro de version technique de BlueMind est indiqué sur la page de téléchargement de BlueMind ou dans la section « À propos » de l'interface utilisateur.
Utilisation
Authentification
Le client s'initialise avec la classe BMClient :
<?php
require 'BM/AuthenticationClient.php';
require 'BM/DomainsClient.php';
$url="https://external-url";
$token="admin";
$authClient = new BM\AuthenticationClient($url, NULL);
$loginResponse = $authClient->login('admin0@global.virt', $token, 'bm-php-client');
echo "Login result : ".$loginResponse->status;
?>
url
: définit l'url d'accès au serveur BlueMind.token
: correspond au mot de passe ou token de l'admin0 ; dans cet exemple on utilise le token admin0 afin d'avoir des droits étendus au niveau de l'API.
Il est aussi possible de s'authentifier en tant qu'utilisateur :<?php
require 'BM/AuthenticationClient.php';
require 'BM/DomainsClient.php';
$url="https://external-url";
$token="admin";
$authClient = new BM\AuthenticationClient($url, NULL);
$loginResponse = $authClient->login('admin0@global.virt', $token, 'bm-php-client');
print "Login result : ".$loginResponse->status;
$authClient = new BM\AuthenticationClient($url, $loginResponse->authKey);
$token = $authClient->su("user@local.lan");
print "sudo result : ".$token->status
?>
NB : À noter qu'il est aussi possible d'utiliser la clé d'API d'un utilisateur à la place de son mot de passe.
Lister les domaines
<?php
require 'BM/AuthenticationClient.php';
require 'BM/DomainsClient.php';
$url="https://external-url";
$token="admin";
$authClient = new BM\AuthenticationClient($url, NULL);
$loginResponse = $authClient->login('admin0@global.virt', $token, 'bm-php-client');
print "Login result : " + $loginResponse->status;
$domainClient = new BM\DomainsClient($url, $loginResponse->authKey);
$domains = $domainClient->all();
#var_dump($domains);
foreach ($domains as $domain)
{
print $domain->value->name."\n";
}
?>
Lister les évènements
<?php
require 'BM/AuthenticationClient.php';
require 'BM/DomainsClient.php';
require 'BM/UserClient.php';
require 'BM/CalendarClient.php';
require 'BM/ContainersClient.php';
require 'BM/ContainerQuery.php';
// BEGIN CONF
$url="https://external-url";
$token="admin";
$user="user@local.lan";
$domain="local.lan";
// END CONF
$authClient = new BM\AuthenticationClient($url, NULL);
$loginResponse = $authClient->login('admin0@global.virt', $token, 'bm-php-client');
//var_dump($loginResponse);
print "Login result : " + $loginResponse->status;
$userClient = New BM\UserClient($url, $loginResponse->authKey, $domain);
$userValue = $userClient->byEmail($user);
$containersClient = New BM\ContainersClient($url, $loginResponse->authKey);
$query = New BM\ContainerQuery();
$query->owner = $userValue->uid;
$query->type = "calendar";
$containers = $containersClient->allForUser($domain, $userValue->uid, $query);
foreach ($containers as $container)
{
print "calendar : ".$container->name. " uid : ".$container->uid."\n";
$calendarClient = New BM\CalendarClient($url, $loginResponse->authKey, $container->uid);
foreach ($calendarClient->list_()->values as $event)
{
print "Event : ".$event->value->main->summary."\n";
}
}
?>
Les exemples sont disponibles sur notre dépôt : https://forge.bluemind.net/stash/projects/BA/repos/bluemind-samples/browse/php-api-examples
FAQ
Problèmes de certificat
Si vous utilisez un certificat non reconnu, il faut modifier la valeur de CURLOPT_SSL_VERIFYPEER à FALSE dans le fichier BM/GlobalEnv.php