Reputation: 25
<?php
#$test = snmpget -v 1 -O v 192.168.0.100 -c public .1.3.6.1.4.1.6574.1.2.0;
$oksystemp = "40";
$cursystemp = snmpget("192.168.0.100", "public", "1.3.6.1.4.1.6574.1.2.0");
if ($cursystemp > $oksystemp) {
$config = array(
'url'=>'http://10.0.0.56/api/http.php/tickets.json',
'key'=>'83952BBA4A8173FF265FCD9941019797'
);
# Fill in the data for the new ticket, this will likely come from $_POST.
$data = array(
'name' => 'John Doe',
'email' => '[email protected]',
'subject' => 'Test API message',
'message' => 'Die Temperatur des Systems beträgt ".$cursystemp."',
'attachments' => array(),
);
/*
* Add in attachments here if necessary
$data['attachments'][] =
array('filename.pdf' =>
'data:image/png;base64,' .
base64_encode(file_get_contents('/path/to/filename.pdf')));
*/
#pre-checks
function_exists('curl_version') or die('CURL support required');
function_exists('json_encode') or die('JSON support required');
#set timeout
set_time_limit(30);
#curl post
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $config['url']);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_USERAGENT, 'osTicket API Client v1.7');
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Expect:', 'X-API-Key: '.$config['key']));
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result=curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($code != 201)
die('Unable to create ticket: '.$result);
$ticket_id = (int) $result;
# Continue onward here if necessary. $ticket_id has the ID number of the
# newly-created ticket
} elseif ($cursystemp == $oksystemp) {
$config = array(
'url'=>'http://10.0.0.56/api/http.php/tickets.json',
'key'=>'83952BBA4A8173FF265FCD9941019797'
);
# Fill in the data for the new ticket, this will likely come from $_POST.
$data = array(
'name' => 'John Doe',
'email' => '[email protected]',
'subject' => 'Test API message',
'message' => 'Die Temperatur des Systems beträgt ".$cursystemp."',
'attachments' => array(),
);
/*
* Add in attachments here if necessary
$data['attachments'][] =
array('filename.pdf' =>
'data:image/png;base64,' .
base64_encode(file_get_contents('/path/to/filename.pdf')));
*/
#pre-checks
function_exists('curl_version') or die('CURL support required');
function_exists('json_encode') or die('JSON support required');
#set timeout
set_time_limit(30);
#curl post
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $config['url']);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_USERAGENT, 'osTicket API Client v1.7');
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Expect:', 'X-API-Key: '.$config['key']));
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result=curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($code != 201)
die('Unable to create ticket: '.$result);
$ticket_id = (int) $result;
# Continue onward here if necessary. $ticket_id has the ID number of the
# newly-created ticket
} else {
echo ($cursystemp);
}
?>
i got this code. When i execute the script i get an "Syntax error, malformed JSON". I dont know ehere the Problem should be. I want to create a script which will work as a crontab on a server and request every 5 minutes parameters from a synology nas, when the temperature is to high, it should automaticlly create an ticket in osticket.
Kind Regards
Upvotes: 0
Views: 1234
Reputation: 25
<?php
#$test = snmpget -v 1 -O v 192.168.0.100 -c public .1.3.6.1.4.1.6574.1.2.0;
$oksystemp = "40";
$cursystemp = snmpget("192.168.0.100", "public", "1.3.6.1.4.1.6574.1.2.0");
function ticket() {
# Configuration: Enter the url and key. That is it.
# url => URL to api/task/cron e.g # http://yourdomain.com/support/api/tickets.json
# key => API's Key (see admin panel on how to generate a key)
#
$config = array(
'url'=>'http://10.0.0.56/api/http.php/tickets.json',
'key'=>'83952BBA4A8173FF265FCD9941019797'
);
# Fill in the data for the new ticket, this will likely come from $_POST.
$data = array(
'name' => 'John Doe',
'email' => '[email protected]',
'subject' => 'Test API message',
'message' => 'This is a test of the osTicket API',
'attachments' => array(),
);
/*
* Add in attachments here if necessary
$data['attachments'][] =
array('filename.pdf' =>
'data:image/png;base64,' .
base64_encode(file_get_contents('/path/to/filename.pdf')));
*/
#pre-checks
function_exists('curl_version') or die('CURL support required');
function_exists('json_encode') or die('JSON support required');
#set timeout
set_time_limit(30);
#curl post
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $config['url']);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_USERAGENT, 'osTicket API Client v1.7');
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Expect:', 'X-API-Key: '.$config['key']));
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result=curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($code != 201)
die('Unable to create ticket: '.$result);
$ticket_id = (int) $result;
# Continue onward here if necessary. $ticket_id has the ID number of the
# newly-created ticket
}
if ($cursystemp > $oksystemp) {
ticket();
} elseif ($cursystemp == $oksystemp) {
ticket();
} else {
echo ($cursystemp);
}
?>
I just cleand my code a little bit now it works, if someone get the same problem
Upvotes: 1