Modoboa : développer un client REST en PHP

Vous trouverez ci-dessous quelques pistes si vous voulez vous connecter à l'API Rest de Modoboa en PHP ... la documentation est super bien fournie et génère du code python ou shell, pour PHP il suffit de comprendre comment ça marche et ensuite tout est "simple", à vous de jouer !

modoboa.png

Exemple 1: vérifier si un compte existe

<?php
$url = "https://adresse_de_votre_modoboa/api/v1";
$crl = curl_init();

$headr = array();
$headr[] = 'Content-type: application/json';
$headr[] = 'Authorization:  Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; //utilisation du Token généré sur l'interface d'administration de modoboa

//ne pas verifier le https si on a un certificat autosigné par exemple
curl_setopt($crl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($crl, CURLOPT_SSL_VERIFYPEER, false);

//verification compte existant
$headr[] = 'Content-length: 0';
curl_setopt($crl, CURLOPT_URL, $url . "/accounts/exists/?email=eric@domaine.org");

curl_setopt($crl, CURLOPT_HTTPHEADER,$headr);

$rest = curl_exec($crl);
if ($rest === false)
{
  // throw new Exception('Curl error: ' . curl_error($crl));
  print_r('Curl error: ' . curl_error($crl));
}

curl_close($crl);
print_r($rest);
?>

Exemple 2: créer un compte

<?php
$url = "https://adresse_de_votre_modoboa/api/v1";
$crl = curl_init();

$headr = array();
$headr[] = 'Content-type: application/json';
$headr[] = 'Authorization:  Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; //utilisation du Token généré sur l'interface d'administration de modoboa

//ne pas verifier le https si on a un certificat autosigné par exemple
curl_setopt($crl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($crl, CURLOPT_SSL_VERIFYPEER, false);

//post pour creation compte
//curl_setopt($crl, CURLOPT_POST, true);
$data = array("username" => "eric2", "role" => "SimpleUsers", "password" => "AZazaz34az");
$data_string = json_encode($data);
curl_setopt($crl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($crl, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($crl, CURLOPT_RETURNTRANSFER, true);
$headr[] = 'Content-length: ' . strlen($data_string);
curl_setopt($crl, CURLOPT_URL, $url . "/accounts/");

curl_setopt($crl, CURLOPT_HTTPHEADER,$headr);

$rest = curl_exec($crl);
if ($rest === false)
{
  // throw new Exception('Curl error: ' . curl_error($crl));
  print_r('Curl error: ' . curl_error($crl));
}

curl_close($crl);
print_r($rest);
?>
QR code
Send to friend

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

URL de rétrolien : https://e.garluche.fr/trackback/796