Zum Hauptinhalt gehen

PHP-Client

Installation

Der PHP-Client wird derzeit installiert, indem ein Archiv mit dem Client unter der folgenden URL abgerufen wird: https://pkg.bluemind.net/pkg/<technische nummer von BM>/clients/

Numéro de version technique

Die technische Versionsnummer von BlueMind ist auf der page de téléchargement de BlueMind ou in der section « À propos » der Benutzeroberfläche zu finden.

Nutzung

Authentifizierung

Der Kunde wird mit der Klasse BMClient initialisiert:

<?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 : definiert die URL des Zugriffs auf den BlueMind-Server.
  • token : entspricht dem Passwort oder Token des Admin0 ; in diesem Beispiel wird das Token admin0 verwendet, um erweiterte Rechte auf API-Ebene zu haben. Es ist auch möglich, sich als Benutzer anzumelden:
    <?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: Beachten Sie, dass es auch möglich ist, den API-Schlüssel eines Benutzers anstelle seines Passworts zu verwenden.

Domänen auflisten

<?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";
}
?>

Ereignisse auflisten

<?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";
}
}
?>

Beispiele sind auf unserem Git verfügbar: https://forge.bluemind.net/stash/projects/BA/repos/bluemind-samples/browse/php-api-examples

FAQ

Probleme mit dem Zertifikat

Wenn Sie ein nicht anerkanntes Zertifikat verwenden, müssen Sie den Wert von CURLOPT_SSL_VERIFYPEER in der Datei BM/GlobalEnv.php auf FALSE ändern.