You are not logged in.
Pages: 1
Is there any way to open an automatic ticket (via script / API rest) with a document already assigned to it?
Offline
Is there any way to open an automatic ticket (via script / API rest) with a document already assigned to it?
It's a good question.
I think you need first open ticket to generate an ID, after with this ID you can make the relationship with an any document.
The relation of the document with the ticket must be done after the ticket opened.
I'm not sure about it, but the devs of GLPI can answer that with more precision.
Offline
wtralui wrote:Is there any way to open an automatic ticket (via script / API rest) with a document already assigned to it?
It's a good question.
I think you need first open ticket to generate an ID, after with this ID you can make the relationship with an any document.
The relation of the document with the ticket must be done after the ticket opened.
I'm not sure about it, but the devs of GLPI can answer that with more precision.
Greetings.
So friend, I already have a script that opens the ticket completely, generating me the ID and etc .. I have also made a script in which uploads the file on the GLPI server, the problem is that I am unable to associate ( via script) the document to the open ticket
Some references that I followed but I was not successful:
curl -X POST \
-H 'Content-Type: application/json' \
-H "Session-Token: bvb01r0anhqe4vqrtft2du4lh1" \
-H "App-Token: jYPzF6c9j9pTDBdZXwIBsGxzoGhoWyef4wXUAsr2" \
-d '{"input": {"itemtype": "Ticket", "documents_id": "31", "items_id": "4"}}' \
'http://localhost/glpi/apirest.php/Document_Item/'
-----------------------------------------------------------------------------------
<?php
$sessiontoken = "k7uhook39qa4abb0naot8p25r4";
$url = "localhost/glpi";
$apptoken = "jYPzF6c9j9pTDBdZXwIBsGxzoGhoWyef4wXUAsr2";
$filename = "/tmp/image4.png";
$file = file_get_contents($filename);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "http://".$url."/apirest.php/Document/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "——WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name=\"uploadManifest\"
{\"input\": {\"tickets_id\": \"4\",\"name\": \"01Chamado 1234567bc\", \"_filename\" : [\”$filename\”]}}
——WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: multipart/form-data; name=\"ab\"; filename=\"$filename\";
Content-Type: image/png;
$file
——WebKitFormBoundary7MA4YWxkTrZu0gW–",
CURLOPT_HTTPHEADER => array(
"app-token: $apptoken",
"cache-control: no-cache",
"content-type: multipart/form-data; boundary=—-WebKitFormBoundary7MA4YWxkTrZu0gW",
"postman-token: 3cc7a7f0-2f01-36dc-8ccc-a8b263d2e26c",
"session-token: $sessiontoken"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
?>
Offline
mecmav wrote:wtralui wrote:Is there any way to open an automatic ticket (via script / API rest) with a document already assigned to it?
It's a good question.
I think you need first open ticket to generate an ID, after with this ID you can make the relationship with an any document.
The relation of the document with the ticket must be done after the ticket opened.
I'm not sure about it, but the devs of GLPI can answer that with more precision.
Greetings.
So friend, I already have a script that opens the ticket completely, generating me the ID and etc .. I have also made a script in which uploads the file on the GLPI server, the problem is that I am unable to associate ( via script) the document to the open ticket
Some references that I followed but I was not successful:
curl -X POST \ -H 'Content-Type: application/json' \ -H "Session-Token: sess_token" \ -H "App-Token: app-token" \ -d '{"input": {"itemtype": "Ticket", "documents_id": "31", "items_id": "4"}}' \ 'http://localhost/glpi/apirest.php/Document_Item/'
your input need an user which will make the insertion by using "users_id": "id of a user"
next time you need hide your values <--
I can see you have a bad URL. To make a relation between document and ticket you need this URL http://IP-GLPI/apirest.php/Document/1/Document_Item/
where "1" after slashes can be any number (I don't know why, but works). This URL it's to do the relationship.
-----------------------------------------------------------------------------------
<?php $sessiontoken = "sess_token"; $url = "localhost/glpi"; $apptoken = "app-token"; $filename = "/tmp/image4.png"; $file = file_get_contents($filename); $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "http://".$url."/apirest.php/Document/", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => "——WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name=\"uploadManifest\" {\"input\": {\"tickets_id\": \"4\",\"name\": \"01Chamado 1234567bc\", \"_filename\" : [\”$filename\”]}} ——WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: multipart/form-data; name=\"ab\"; filename=\"$filename\"; Content-Type: image/png; $file ——WebKitFormBoundary7MA4YWxkTrZu0gW–", CURLOPT_HTTPHEADER => array( "app-token: $apptoken", "cache-control: no-cache", "content-type: multipart/form-data; boundary=—-WebKitFormBoundary7MA4YWxkTrZu0gW", "postman-token: 3cc7a7f0-2f01-36dc-8ccc-a8b263d2e26c", "session-token: $sessiontoken" ), )); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; } ?>
Did you try make this tests first by Postman ?
After things works, you can put in a script to make the dirty work.
Last edited by mecmav (2020-01-16 15:24:18)
Offline
Pages: 1