Aller au contenu principal

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/

Numéro de version technique

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