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 !
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); ?>