Page 1 of 1

Assenza directories API

Posted: Fri May 22, 2020 2:21 pm
by SimoneSola97
Salve,
Seguendo la vostra nuova Wiki, per la quale mi complimento circa la chiarezza e la completezza, relativa alla API (https://docs.google.com/document/d/1bbN ... h.17dp8vu9), noto un'anomalia. Ho creato uno script per la creazione automatica all'invocazione dello script in questione (quindi, mediante API) di un utente in piattaforma. Andandolo ad eseguirlo, il server risponde "301 Moved Permanently". In effetti, nel server, al percorso <DOMINIO>/api/ non c'è alcun percorso user/createuser. Come può essere risolto? La piattaforma in uso è la 2.3.0.2.
Saluti

Re: Assenza directories API

Posted: Fri May 22, 2020 3:04 pm
by CisterNino
Ciao,
ho controllato sula versione 2.3.0.1 e l'api per la creazione dell'utente è presente.
L'api è all'interno di /api/lib/api.user.php, riga 69.
Puoi fare la chiamata sia con /api/user/create che con /api/user/createuser.

Re: Assenza directories API

Posted: Sat May 23, 2020 1:27 pm
by SimoneSola97
CisterNino wrote: Fri May 22, 2020 3:04 pm Ciao,
ho controllato sula versione 2.3.0.1 e l'api per la creazione dell'utente è presente.
L'api è all'interno di /api/lib/api.user.php, riga 69.
Puoi fare la chiamata sia con /api/user/create che con /api/user/createuser.
Ciao e grazie per il feedback.
La URL da chiamare col cURL in PHP quindi è https://<MIODOMINIO>/api/user/create, corretto? Se sì, ti confermo che ricevo ancora l'errore prima citato (301) dal server. Posso eventualmente postare qui il codice PHP che genera l'errore?
Grazie e Buon Weekend.

Re: Assenza directories API

Posted: Sat May 23, 2020 1:33 pm
by alfa24
Ciao, 301 potrebbe dipendere dal tuo .htaccess. Vuoi postarlo?

Re: Assenza directories API

Posted: Sat May 23, 2020 8:49 pm
by SimoneSola97
alfa24 wrote: Sat May 23, 2020 1:33 pm Ciao, 301 potrebbe dipendere dal tuo .htaccess. Vuoi postarlo?
Ciao,
Grazie per la risposta. Ecco il copia/incolla del contenuto del file HTACCESS dell'hosting (Aruba) su cui è installato l'LMS. Non riesco ad allegarlo poiché sono da mobile.
Buona serata.

Code: Select all

Options -Indexes
#no need to follow symbolic links in standard configuration
#Options +FollowSymLinks
DirectoryIndex index.php index.html index.htm

<Files favicon.ico>
        ErrorDocument 404 "The requested file favicon.ico was not found.
</Files>

<IfModule mod_rewrite.c>
        RewriteEngine on

        # hide directories that starts with a . (dot)
        RewriteRule "(^|/)\.(?!htaccess)" - [F]

        # Redirect to the www version of the site
        #RewriteCond %{HTTP_HOST} !^www\. [NC]
        #RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

<FilesMatch "\.(htpasswd|ini|php|fla|psd|log|sh)$">
        Order Allow,Deny
        Deny from all
</FilesMatch>

<FilesMatch "(composer\.(json|lock))$">
        Order Allow,Deny
        Deny from all
</FilesMatch>

<FilesMatch "((?i:readme)\.(?i:txt|md)|(?i:README))$">
        Order Allow,Deny
        Deny from all
</FilesMatch>

<FilesMatch "(index\.php|ajax\..*\.php|paypal\.php|cron\.php|tasks\.php|tinymce\.gzip\.php|index_tiny\.php|scormXmlTree\.php|soaplms\.php|scorm_page_body\.php|keep_alive\.php|text\.php|users\.php|write\.php|check\.php)$">
        Order Allow,Deny
        Allow from all
</FilesMatch>

Re: Assenza directories API

Posted: Sat May 23, 2020 8:53 pm
by alfa24
Mi spiace, ho troppi pochi elementi per aiutarti, bisognerebbe debuggare forte sul server...

Re: Assenza directories API

Posted: Sat May 23, 2020 9:21 pm
by SimoneSola97
alfa24 wrote: Sat May 23, 2020 8:53 pm Mi spiace, ho troppi pochi elementi per aiutarti, bisognerebbe debuggare forte sul server...
Ciao,
Grazie mille comunque. Posso aprire un ticket ad Aruba. Eventualmente, posso contattarti via Skype e, in condivisione dello schermo, provare a fare qualche operazione? Posso, se vuoi, allegarti lo script PHP che sto realizzando, magari c'è un errore lì.
Grazie ancora e buona serata.

Re: Assenza directories API

Posted: Sun May 24, 2020 8:50 am
by alfa24
Ok.

Re: Assenza directories API

Posted: Sun May 24, 2020 1:41 pm
by SimoneSola97
alfa24 wrote: Sun May 24, 2020 8:50 amOk.
Buongiorno e Buona Domenica, grazie davvero per le risposte velocissime e per la grande responsabilità.
Spero di acquisire presto un'ottima conoscenza di Forma per poter dare attivamente un contributo anziché "chiedere soltanto"! :)
Ti allego lo script in questione:

Code: Select all

<?php
$secret = "RIMOSSO-PER-PUBBLICAZIONE-SU-FORUM";
$key = "RIMOSSO-PER-PUBBLICAZIONE-SU-FORUM";
$params = array(
                      'userid'        => 'c.ingrassia',
                      'firstname'     => 'Ciccio',
                      'lastname'      => 'Ingrassia',
                      'password'      => 'CiccioIngrassia',
                      'email'         => 'c.ingrassia@mailinator.com',
                      'role'          => "student"
                      );

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

$url_da_chiamare2 = 'https://cartorangeacademy.it/api/user/createuser';

$ch2 = curl_init($url_da_chiamare2);

curl_setopt($ch2, CURLOPT_POST, 1);
curl_setopt($ch2, CURLOPT_HEADER, 'method: POST');
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch2, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch2, CURLOPT_HTTPHEADER, array(
    'X-Authorization: FormaLMS ' . $codice
    ));
$data = curl_exec($ch2);

echo $data;

?>
Saluti