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...
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);