Created
March 21, 2011 03:55
-
-
Save skipjac/878988 to your computer and use it in GitHub Desktop.
This downloads the scheduled report from Zendesk and saves it to the local server.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/********************************************************************************* | |
** This waits for the Zendesk Schedule report call and then downloads the ** | |
** file your Local server for you to act on with other functions or programs ** | |
*********************************************************************************/ | |
$xmlDoc = new DOMDocument(); | |
//Reads the POST from Zendesk | |
$encodedMessage = file_get_contents("php://input"); | |
//loads the XML | |
$xmlDoc->loadXML($encodedMessage); | |
//gets the URL from the Zendesk XML callback | |
$url = $xmlDoc->getElementsByTagName("url")->item(0)->nodeValue; | |
//give it a admins user name and password to download it | |
$username = '[email protected]'; | |
$password = 'apassword'; | |
//Grabs the path name, splits for the file name | |
$csvName = parse_url($url, PHP_URL_PATH); | |
$csvNamePath = explode('/', $csvName); | |
$pathCSVsize = sizeof($csvNamePath)-1; | |
$csvFileName = $csvNamePath[$pathCSVsize]; | |
transport($url, $username, $password, $csvFileName); | |
//takes the url and file name downloads to your local server | |
function transport($url, $username, $password, $csvFileName) | |
{ | |
$headers = array('Content-type: application/zip'); | |
$cobj = curl_init(); | |
$csvContent = fopen($csvFileName,'w'); | |
curl_setopt($cobj, CURLOPT_SSL_VERIFYPEER, FALSE); | |
curl_setopt($cobj, CURLOPT_USERPWD, $username .":".$password); | |
curl_setopt($cobj, CURLOPT_URL, $url); | |
curl_setopt($cobj, CURLOPT_HTTPHEADER, $headers); | |
curl_setopt($cobj, CURLOPT_FOLLOWLOCATION, false); | |
//curl_setopt($cobj, CURLOPT_HEADER, true); | |
curl_setopt($cobj, CURLOPT_FILE, $csvContent); | |
//$last_http_result = curl_exec($cobj); | |
//$last_error = curl_error($cobj); | |
//$last_http_code = curl_getinfo($cobj ,CURLINFO_HTTP_CODE); | |
curl_exec($cobj); | |
curl_close($cobj); | |
unzipZendeskCSV($csvFileName); | |
//print $last_http_result."\n"; | |
//print $last_error."\n"; | |
//print $last_http_code."\n"; | |
} | |
//Unzips the CSV | |
function unzipZendeskCSV($reportName) | |
{ | |
$unzipReport = new ZipArchive; | |
$unzipReport->open($reportName); | |
//where to extract the report to | |
$unzipReport->extractTo('/var/www/reports/'); | |
$unzipReport->close(); | |
} | |
exit; | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment