Domanda
Come posso recuperare automaticamente più pagine di risultati?
Risposta
A volte può essere utile recuperare diverse pagine di risultati per gli utenti e inserirle in un file JSON. Ho creato uno script PHP proprio per fare questo, che è allegato e incollato qui sotto.
<?php
$resource = ''; // put the name of the endpoint here, for example organizations, tickets
$start_page = 1; // first page you want to load
$end_page = 10; // last page you want to load (it could take a while if too big)
$subdomain = ''; // your zendesk subdomain
$userpwd = ''; // your zendesk username and password, or username/token and api token. - {username}/token:{token} or {username}:{password}
function makerequest($url, $userpwd) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERPWD, $userpwd);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_VERBOSE, TRUE);
$result = curl_exec($ch);
if (curl_errno($ch)) $result = curl_error($ch);
curl_close($ch);
return $result;
}
function getpages($resource, $start_page, $end_page, $userpwd, $subdomain){
$url = isset($url) ? $url : "https://$subdomain.zendesk.com/api/v2/$resource.json";
$i = $start_page;
$array = Array();
while (1) {
if ($i > $end_page) {
$file = fopen("results.json", "w") or exit("Unable to open file!");
fwrite($file, json_encode(array($resource => $array)));
fclose($file);
break;
}
$results = json_decode(makerequest($url, $userpwd));
$array = array_merge($array, $results->$resource);
$url = $results->next_page;
$i++;
}
}
getpages($resource, $start_page, $end_page, $userpwd, $subdomain);
?>
Scarica questo script o copialo e incollalo in un file chiamato paginate.php. Compila le variabili all'inizio, $resource, $start_page, $end_page, $subdomaine $userpwd, come spiegato nei commenti dello script.
Quindi, vai alla cartella in cui hai scaricato il file e dal tuo terminale esegui il comando php paginate.php per creare il nuovo file con i risultati, in un file chiamato requirements.json. Il file è stato progettato per sovrascrivere e non per aggiungere file.
Dopo aver ricevuto i risultati, è possibile elaborarli secondo necessità. Queste informazioni possono essere utili per individuare le voci nell'array univoche e quelle duplicate. A tal fine, invia i risultati al file results.json , quindi esegui uno dei due comandi seguenti, il primo che mostra il numero di risultati univoci e il secondo i valori univoci effettivi:
cat results.json | jq '.' | grep '"id"' > sort > uniq -c > uniq.txt
cat results.json | jq '.' | grep '"id"' > sort > uniq > uniq.txt
L'uso di questi comandi richiede anche il possesso di jq, che può essere scaricato da: https://stedolan.github.io/jq/download/.
Inoltre, queste informazioni possono essere utili per esportare i dati per l'importazione in un nuovo sistema.
Avvertenza sulla traduzione: questo articolo è stato tradotto usando un software di traduzione automatizzata per fornire una comprensione di base del contenuto. È stato fatto tutto il possibile per fornire una traduzione accurata, tuttavia Zendesk non garantisce l'accuratezza della traduzione.
Per qualsiasi dubbio sull'accuratezza delle informazioni contenute nell'articolo tradotto, fai riferimento alla versione inglese dell'articolo come versione ufficiale.
0 commenti