Création token pour script Cpanel

Discussion dans 'Panneaux de Contrôle' démarrée par supertoto, Aou 24, 2014.

  1. supertoto

    supertoto New Member

    Bonjour à tous,

    suite à des recherches j'ai appris que Cpanel pouvait être utilisé via des scripts et donc permettait d'automatiser certaines tâches.

    Mon but final serait de créer des sous-domaines à la volée.
    Saber dans une discussion avec un membre a mentionné cette page : cPanel XML and JSON APIs

    De ce que je comprends, il faut d'abord créer un token de connexion qu'on utilise ensuite pour interroger le service.

    Pour cela, cette page est sensée me venir en aide. Elle décrit comment obtenir un token de connexion avec en plus un exemple en PHP, exactement ce dont j'ai besoin (cf le code en bas de cette discussion)

    Malheureusement, lorsque j'utilise ce code sur mon hébergement PH, en me connectant via le navigateur (http) j'ai le message retour suivant :
    Code:
    Access denied 0 Access denied
    
    Pourtant, j'ai modifié les 2 variables du début, en mentionnant en clair mes login et mot de passe Cpanel (les mêmes que ceux qui me sont demandés lorsque je me connecte directement au Cpanel via l'interface :
    Code:
    https://nova.planethoster.net:2083 
    J'ai modifié la variable query de la sorte (pas de 3 w ?) :
    Code:
    $query = "https://mondomaine.com:2087/xml-api/listaccts";
    Je ne sais pas si le port 2087 est le plus adapté, j'ai vu parfois qu'il était mentionné 2083 ou 2086.

    Mes questions :
    1) Est-ce que vous auriez une idée de ce qui peut poser problème ?
    2) J'ai vu qu'il existait deux API Cpanel (API1 et API2) est ce que les deux sont compatibles avec la version Cpanel pro 1.0 (RC1) ou faut-il en utiliser une de préférence ?

    Merci d'avance pour vos réponses.



    PHP:
    <?

    $whmusername "username"// remplacé par mon login Cpanel
    $whmpassword "password"// remplacé par mon mot de passe Cpanel en clair (sécurisé ?). Un autre exemple utilise un hash mais je ne sais pas trop comment le générer, j'aimerais faire fonctionner cette exemple plus simple

    $query "https://127.0.0.1:2087/"// remplacé par mon domaine + paramètres ci-dessus

    $curl curl_init();        
    # Create Curl Object
    curl_setopt($curlCURLOPT_SSL_VERIFYPEER,0);    
    # Allow self-signed certs
    curl_setopt($curlCURLOPT_SSL_VERIFYHOST,0);     
    # Allow certs that do not match the hostname
    curl_setopt($curlCURLOPT_HEADER,0);            
    # Do not include header in output
    curl_setopt($curlCURLOPT_RETURNTRANSFER,1);    
    # Return contents of transfer on curl_exec
    $header[0] = "Authorization: Basic " base64_encode($whmusername.":".$whmpassword) . "\n\r";
    curl_setopt($curlCURLOPT_HTTPHEADER$header);  
    # set the username and password
    curl_setopt($curlCURLOPT_URL$query);            
    # execute the query
    $result curl_exec($curl);
    if (
    $result == false) {
        
    error_log("curl_exec threw error \"" curl_error($curl) . "\" for $query");    
    # log error if curl exec fails
    }
    curl_close($curl);

    print 
    $result;
     
  2. supertoto

    supertoto New Member

    Pour information complémentaire, je suis sur un hébergement mutualisé.
     

Partager cette page