The Elearning Community • Funzionamento API
Page 1 of 1

Funzionamento API

Posted: Wed Oct 21, 2020 9:04 am
by marco987
Salve a tutti. Ho bisogno di consigli sull'uso delle API per favore.
Lato piattaforma (Configurazione > Configurazione sistema > Configurazione > API e Autenticazione) ho spuntato "Abilita le funzionalità delle API", ho inserito un "Codice unico di accesso", una "Aut. Chiave API" e un "Aut. Codice segreto API".
Domanda: Come va modificato/integrato il seguente codice PHP? Grazie

Code: Select all

$params = array("username" => "userLMS", "password" => "passLMS");
$key = "ciaokey";
$secret = "ciaosecret";

$codice_sha1 = strtolower(sha1(implode(",", $params) . "," . $secret));
$codice = base64_encode($key . ":" . $codice_sha1);

$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://indirizzopiattaformaLMS.it/api/...", // <- Cosa ci va qui?
    // Cos'altro ci va qui?
    CURLOPT_HTTPHEADER => array(
        "X-Authorization: FormaLMS " . $codice,
        // Ci va altro?
    ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Re: Funzionamento API

Posted: Wed Oct 21, 2020 9:26 am
by alfa24
Come già detto a Simone, devi scriverti un tuo layer, come per qualsiasi RESTful interface.
Ti ho scritto anche in privato, hai ignorato...

Re: Funzionamento API

Posted: Wed Oct 21, 2020 9:38 am
by marco987
alfa24 wrote:
Wed Oct 21, 2020 9:26 am
Come già detto a Simone, devi scriverti un tuo layer, come per qualsiasi RESTful interface.
Ti ho scritto anche in privato, hai ignorato...
Chiedo scusa. L'email arrivatami ieri l'avevo confusa con una risposta automatica :?

Re: Funzionamento API

Posted: Wed Oct 21, 2020 10:46 am
by marco987
Da documentazione:

Code: Select all

$codice_sha1 = strtolower(sha1(implode(',', $params) . ',' . $secret)); 
$codice = base64_encode($key . ':' . $codice_sha1);
$params è sempre come indicato di seguito?

Code: Select all

$params = array("username" => "userLMS", "password" => "passLMS");

Re: Funzionamento API

Posted: Wed Oct 21, 2020 10:53 am
by alfa24

Re: Funzionamento API

Posted: Wed Oct 21, 2020 12:46 pm
by marco987
Sono riuscito a fare un passo avanti cambiando sulla piattaforma il "Metodo di autenticazione", portandolo da "Generazione di un Token ad ogni connessione" a "Aut. Chiave segreta".
In questo modo /api/user/listUsers funziona, dove
$param = [];

Se provo, invece, /api/user/checkUsername NON funziona, dove
$param = ["userid" => "username"];
e
CURLOPT_URL => "http://sito.it/api/user/checkUsername?userid=username",

Re: Funzionamento API

Posted: Fri Oct 30, 2020 10:56 am
by marco987
Continuo ad avere difficoltà, la frustrazione comincia a farsi sentire... :cry: Col seguente codice alcune cose funzionano e altre no, perché? Dove sbaglio? Grazie in anticipo a chi vorrà aiutarmi.

Code: Select all

<?php
$params = []; // per come varia vedere esempi sotto
$key = "ciaokey";
$secret = "ciaosecret";

$codice_sha1 = strtolower(sha1(implode(',', $params) . ',' . $secret));
$codice = base64_encode($key . ":" . $codice_sha1);

$curl = curl_init();

curl_setopt_array($curl, array(

    /*
        CURLOPT_URL => "http://sito.it/api/user/listUsers",

        Con $params = [] FUNZIONA CORRETTAMENTE
    */
    /*
        CURLOPT_URL => "http://sito.it/api/user/countusers?status=all",

        Con $params = [] FUNZIONA CORRETTAMENTE
    */
    /*
        CURLOPT_URL => "http://sito.it/api/course/courses",

        Con $params = [] FUNZIONA CORRETTAMENTE
    */

    /*
        CURLOPT_URL => "http://sito.it/api/user/checkUsername?userid=formaLMS",

        Con $params = [] dà il seguente ERRORE:
           [error] => User not found // ma sono certo che l’utente esiste
        
        Con $params = ["userid" => "formaLMS",] dà il seguente ERRORE:
            [error] => () // ma sono certo che l’utente esiste
    */
    /*
        CURLOPT_URL => "http://sito.it/api/auth/authenticate?username=formaLMS&password=formaLMS",
        
        Con $params = [] dà il seguente ERRORE:
            [error] => Error: Tokens are not used on this installation. // ma sono certo che l’utente esiste
        
        Con $params = ["username"=>"formaLMS", "password"=>"formaLMS",] dà il seguente ERRORE:
            [error] => () // ma sono certo che l’utente esiste
    */
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        "X-Authorization: FormaLMS " . $codice,
    ],
));

$response = curl_exec($curl);
$error = curl_error($curl);

curl_close($curl);

$xml = simplexml_load_string($response);
print_r($xml);

This site uses cookies.

Some of the cookies we use are essential for parts of the site to operate and have already been set. We also use Google Analytics scripts, which all use cookies.
You may delete or block all cookies from this site in your browser options.