Question
Comment récupérer automatiquement plusieurs pages de résultats ?
Réponse
Parfois, il peut être pratique d’extraire plusieurs pages de résultats utilisateur et de les placer dans un fichier JSON. Pour faire cela, j’ai créé un script PHP qui est joint et également collé ci-dessous.
<?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);
?>
Téléchargez ce script ou copiez et collez-le dans un fichier appelé paginate.php. Remplissez les variables au début, $resource, $start_page, $end_page, $subdomain et $userpwd comme expliqué dans les commentaires du script.
Ensuite, accédez au dossier dans lequel vous avez téléchargé le fichier et, à partir de votre terminal, exécutez la commande php paginate.php pour créer le nouveau fichier avec vos résultats, dans un fichier nommé results.json. Le fichier est conçu pour écraser et non pas adjoindre.
Une fois les résultats reçus, vous pouvez les traiter selon vos besoins. Ces informations peuvent être utiles pour rechercher les entrées du tableau qui sont uniques par rapport aux doublons. Pour ce faire, exportez les résultats dans le fichier results.json, puis exécutez l’une des deux commandes ci-dessous, la première indiquant le nombre de résultats uniques et la seconde indiquant les valeurs uniques réelles:
cat results.json | jq '.' | grep '"id"' > sort > uniq -c > uniq.txt
cat results.json | jq '.' | grep '"id"' > sort > uniq > uniq.txt
Pour utiliser ces commandes, vous devez aussi disposer de jq, que vous pouvez télécharger à partir de https://stedolan.github.io/jq/download/.
En outre, ces informations peuvent être utiles pour exporter les données avant de les importer dans un nouveau système.
Traduction - exonération : cet article a été traduit par un logiciel de traduction automatisée pour permettre une compréhension élémentaire de son contenu. Des efforts raisonnables ont été faits pour fournir une traduction correcte, mais Zendesk ne garantit pas l’exactitude de la traduction.
Si vous avez des questions quant à l’exactitude des informations contenues dans l’article traduit, consultez la version anglaise de l’article, qui représente la version officielle.
0 commentaire