2020-08-14 13:36:36 +02:00
|
|
|
|
<?php
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
* Skripta za testiranje API-ja
|
|
|
|
|
*
|
|
|
|
|
**/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Nastavimo url api-ja
|
2022-05-20 09:28:21 +02:00
|
|
|
|
//$api_url = 'http://test.1ka.si/admin/survey/api/api.php';
|
2020-08-14 13:36:36 +02:00
|
|
|
|
|
|
|
|
|
// Nastavimo identifier in key userja
|
2022-08-25 12:28:54 +02:00
|
|
|
|
/*$identifier = 'a1c3b90fdae3c45d';
|
|
|
|
|
$private_key = 'e60032141a7aae518f9938636b963fc14d58d40025dc7b6b82f4e69b8a42599e';*/
|
2020-08-14 13:36:36 +02:00
|
|
|
|
|
2022-08-25 12:28:54 +02:00
|
|
|
|
$api_url = 'https://www.1ka.si/admin/survey/api/api.php';
|
|
|
|
|
$identifier = '3ccc9cbc90493d09';
|
|
|
|
|
$private_key = 'b8dbeceed3d0d7f80ca5d82ba352d9696c1804ff9b9d45272b8e99ea0a4987d6';
|
|
|
|
|
|
2023-01-23 20:12:09 +01:00
|
|
|
|
/*$api_url = 'https://localhost/admin/survey/api/api.php';
|
2022-05-20 09:28:21 +02:00
|
|
|
|
$identifier = '0d712128f7fe5707';
|
2022-08-25 12:28:54 +02:00
|
|
|
|
$private_key = 'd0ea50f1deabe2d9d9082c4c2a25c7db3648cab59f7a19939c808f602bdbc1be';*/
|
2022-05-20 09:28:21 +02:00
|
|
|
|
|
2020-08-14 13:36:36 +02:00
|
|
|
|
|
|
|
|
|
// Nastavimo parametre
|
2022-08-25 12:28:54 +02:00
|
|
|
|
$ank_id = '384751';
|
2022-05-20 09:28:21 +02:00
|
|
|
|
//$action = 'getSurveyQuestions';
|
2022-08-25 12:28:54 +02:00
|
|
|
|
//$action = 'createSurvey';
|
|
|
|
|
$action = 'getSurveyResponseData';
|
2020-08-14 13:36:36 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Izvedemo klic (GET ali POST)
|
2022-05-20 09:28:21 +02:00
|
|
|
|
//$result = executeGET();
|
2022-08-25 12:28:54 +02:00
|
|
|
|
//$result = executePOST();
|
2020-08-14 13:36:36 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Izpisemo rezultat
|
|
|
|
|
echo 'REZULTAT (RAW):<br />';
|
|
|
|
|
echo $result;
|
|
|
|
|
|
|
|
|
|
echo '<br /><br /><br />';
|
|
|
|
|
|
|
|
|
|
// Izvedemo se json decode in izpisemo array
|
|
|
|
|
$result_array = json_decode($result, true);
|
|
|
|
|
echo 'REZULTAT (JSON DECODE):';
|
|
|
|
|
var_dump($result_array);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// GET
|
|
|
|
|
function executeGET(){
|
|
|
|
|
global $api_url;
|
|
|
|
|
global $identifier;
|
|
|
|
|
global $private_key;
|
|
|
|
|
global $ank_id;
|
|
|
|
|
global $action;
|
|
|
|
|
|
|
|
|
|
// GET params
|
|
|
|
|
$params = 'action='.$action; // Funkcija, ki jo želimo izvesti
|
|
|
|
|
$params .= '&ank_id='.$ank_id; // ostali parametri potrebni za klic funkcije (id ankete, vprašanja...)
|
2022-08-25 12:28:54 +02:00
|
|
|
|
$params .= '&usr_id=50666962'; // ostali parametri potrebni za klic funkcije (id ankete, vprašanja...)
|
2020-08-14 13:36:36 +02:00
|
|
|
|
|
|
|
|
|
// Pripravimo podatke za hashiranje
|
|
|
|
|
$request_method = 'GET';
|
|
|
|
|
$request = $api_url.'?'.$params;
|
|
|
|
|
|
|
|
|
|
$data = $request_method . $request;
|
|
|
|
|
|
|
|
|
|
// Izracunamo hash (token)
|
|
|
|
|
$token = hash_hmac('sha256', $data, $private_key);
|
|
|
|
|
|
|
|
|
|
// Pripravimo klic – dodamo parametra »identifikator« in »token«
|
|
|
|
|
$ch = curl_init($request.'&identifier='.$identifier.'&token='.$token);
|
|
|
|
|
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $request_method);
|
|
|
|
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
|
|
|
|
|
|
|
|
|
// Izvedemo klic
|
|
|
|
|
$result = curl_exec($ch);
|
|
|
|
|
|
|
|
|
|
return $result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// POST
|
|
|
|
|
function executePOST(){
|
|
|
|
|
global $api_url;
|
|
|
|
|
global $identifier;
|
|
|
|
|
global $private_key;
|
|
|
|
|
global $ank_id;
|
|
|
|
|
global $action;
|
|
|
|
|
|
|
|
|
|
// GET params
|
|
|
|
|
$params = 'action='.$action; // Funkcija, ki jo želimo izvesti
|
2022-05-20 09:28:21 +02:00
|
|
|
|
//$params .= '&ank_id='.$ank_id; // ostali parametri potrebni za klic funkcije (id ankete, vprašanja...)
|
2020-08-14 13:36:36 +02:00
|
|
|
|
|
|
|
|
|
// POST data
|
Prilagoditev za F2F, ostalo:
Dopolnjena opomba k nastavitvi kodne tabele za SQL.
De-1KAizacija:
Ukinjenih nekaj info@1ka.si emailov, odstranjenih nekaj testnih petrovih nastavitev.
Tudi lastna instalacija ima pravico do obvestil o grdem početju (phishing ipd).
GDPR na 1KA pošljemo samo, če NI lastna instalacija.
Dopolnitve za fieldwork delo:
- 1ka data izvoz
- grupa glede na kodo in ne le kuki
Tako lahko anketar nadaljuje z anketiranjem istega respondenta z vnosom
iste kode. Prej se je grupa nastavljala le glede na kuki, kar je bilo neuporabno
za fieldwork.
- skok na isto, ne naslednjo stran na koncu
PREJ: izpolnil si 1, 2, 3 in zaprl na 3. strani. 3. stran se ni shranila,
ker nisi dal NEXT. NAslednjič ko si odprl isti link, ki nadaljeval
na *naslednji* strani (4.)
Tako si imel podatke za 1.; 2.; 4.,... stran.
ZDAJ: izpolniš 1, 2, 3, zapreš. 3. stran se seveda ni shranila, ker si zaprl.
Ko ponovno odpreš anketo, te vrže na ISTO ZADNJO stran - torej tretjo.
- možen lokalni dump podatkov iz crontaba (zaščiteno s kodo)
- settings.php ima dodano nastavitev kode za dump podatkov. Tega ni smiselno
dati v nastavitve, ker se mora poklicati iz cron joba na SERVERJU, tako da
mora itak štaufat admin, ki pripravljal laptop.
Skripte za terensko združevanje so ločen modul in jih bi porinil v ločenem
patchu.
POZOR, preveriti je treba še BodyController (ali je bil ugly hack za narobe
nastavljeno anketo, ali je bilo kaj drugega). Avtomatsko je namreč disablalo
popravljanje ankete anketarjem!
2022-11-11 14:41:51 +01:00
|
|
|
|
// primer, sestavi po svoje.
|
2020-08-14 13:36:36 +02:00
|
|
|
|
$post_data = array(
|
Prilagoditev za F2F, ostalo:
Dopolnjena opomba k nastavitvi kodne tabele za SQL.
De-1KAizacija:
Ukinjenih nekaj info@1ka.si emailov, odstranjenih nekaj testnih petrovih nastavitev.
Tudi lastna instalacija ima pravico do obvestil o grdem početju (phishing ipd).
GDPR na 1KA pošljemo samo, če NI lastna instalacija.
Dopolnitve za fieldwork delo:
- 1ka data izvoz
- grupa glede na kodo in ne le kuki
Tako lahko anketar nadaljuje z anketiranjem istega respondenta z vnosom
iste kode. Prej se je grupa nastavljala le glede na kuki, kar je bilo neuporabno
za fieldwork.
- skok na isto, ne naslednjo stran na koncu
PREJ: izpolnil si 1, 2, 3 in zaprl na 3. strani. 3. stran se ni shranila,
ker nisi dal NEXT. NAslednjič ko si odprl isti link, ki nadaljeval
na *naslednji* strani (4.)
Tako si imel podatke za 1.; 2.; 4.,... stran.
ZDAJ: izpolniš 1, 2, 3, zapreš. 3. stran se seveda ni shranila, ker si zaprl.
Ko ponovno odpreš anketo, te vrže na ISTO ZADNJO stran - torej tretjo.
- možen lokalni dump podatkov iz crontaba (zaščiteno s kodo)
- settings.php ima dodano nastavitev kode za dump podatkov. Tega ni smiselno
dati v nastavitve, ker se mora poklicati iz cron joba na SERVERJU, tako da
mora itak štaufat admin, ki pripravljal laptop.
Skripte za terensko združevanje so ločen modul in jih bi porinil v ločenem
patchu.
POZOR, preveriti je treba še BodyController (ali je bil ugly hack za narobe
nastavljeno anketo, ali je bilo kaj drugega). Avtomatsko je namreč disablalo
popravljanje ankete anketarjem!
2022-11-11 14:41:51 +01:00
|
|
|
|
"email" => "...",
|
|
|
|
|
"firstname" => "...",
|
|
|
|
|
"lastname" => "..."
|
2020-08-14 13:36:36 +02:00
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
2022-05-20 09:28:21 +02:00
|
|
|
|
$post_data = array(
|
|
|
|
|
"naslov_vprasalnika" => "naslovovoovvo",
|
|
|
|
|
"survey_type" => 0,
|
|
|
|
|
"besedilo_vprasanja" => "text vprasasa",
|
|
|
|
|
"vrsta_vprasanja" => 0,
|
|
|
|
|
"other" => "Other:",
|
|
|
|
|
"Odgovori" => array(
|
|
|
|
|
"Text of option 1",
|
|
|
|
|
"Text of option 2",
|
|
|
|
|
"Text of option 3"
|
|
|
|
|
)
|
|
|
|
|
);
|
|
|
|
|
|
2020-08-14 13:36:36 +02:00
|
|
|
|
|
|
|
|
|
// Pripravimo podatke za hashiranje
|
|
|
|
|
$request_method = 'POST';
|
|
|
|
|
$request = $api_url.'?'.$params;
|
|
|
|
|
$raw_post_data = http_build_query($post_data);
|
|
|
|
|
|
|
|
|
|
$data = $request_method . $request . $raw_post_data;
|
|
|
|
|
|
|
|
|
|
// Izracunamo hash (token)
|
|
|
|
|
$token = hash_hmac('sha256', $data, $private_key);
|
|
|
|
|
|
|
|
|
|
// Pripravimo klic – dodamo parametra »identifikator« in »token«
|
|
|
|
|
$ch = curl_init($request.'&identifier='.$identifier.'&token='.$token);
|
|
|
|
|
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post_data)); // JSON string za POST
|
|
|
|
|
curl_setopt($ch, CURLOPT_POST, true);
|
|
|
|
|
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $request_method);
|
|
|
|
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
|
|
|
|
|
|
|
|
|
// Izvedemo klic
|
|
|
|
|
$result = curl_exec($ch);
|
|
|
|
|
|
|
|
|
|
return $result;
|
|
|
|
|
}
|
Prilagoditev za F2F, ostalo:
Dopolnjena opomba k nastavitvi kodne tabele za SQL.
De-1KAizacija:
Ukinjenih nekaj info@1ka.si emailov, odstranjenih nekaj testnih petrovih nastavitev.
Tudi lastna instalacija ima pravico do obvestil o grdem početju (phishing ipd).
GDPR na 1KA pošljemo samo, če NI lastna instalacija.
Dopolnitve za fieldwork delo:
- 1ka data izvoz
- grupa glede na kodo in ne le kuki
Tako lahko anketar nadaljuje z anketiranjem istega respondenta z vnosom
iste kode. Prej se je grupa nastavljala le glede na kuki, kar je bilo neuporabno
za fieldwork.
- skok na isto, ne naslednjo stran na koncu
PREJ: izpolnil si 1, 2, 3 in zaprl na 3. strani. 3. stran se ni shranila,
ker nisi dal NEXT. NAslednjič ko si odprl isti link, ki nadaljeval
na *naslednji* strani (4.)
Tako si imel podatke za 1.; 2.; 4.,... stran.
ZDAJ: izpolniš 1, 2, 3, zapreš. 3. stran se seveda ni shranila, ker si zaprl.
Ko ponovno odpreš anketo, te vrže na ISTO ZADNJO stran - torej tretjo.
- možen lokalni dump podatkov iz crontaba (zaščiteno s kodo)
- settings.php ima dodano nastavitev kode za dump podatkov. Tega ni smiselno
dati v nastavitve, ker se mora poklicati iz cron joba na SERVERJU, tako da
mora itak štaufat admin, ki pripravljal laptop.
Skripte za terensko združevanje so ločen modul in jih bi porinil v ločenem
patchu.
POZOR, preveriti je treba še BodyController (ali je bil ugly hack za narobe
nastavljeno anketo, ali je bilo kaj drugega). Avtomatsko je namreč disablalo
popravljanje ankete anketarjem!
2022-11-11 14:41:51 +01:00
|
|
|
|
|