You are not logged in.
Pages: 1
Bonjour,
Je souhaite ajouter un nouvel ordinateur dans GLPI via un formulaire PHP. J'utilise Guzzle pour faire des requêtes HTTP, ici une requête post pour ajouter un ordinateur.
Voici mon code :
$app_token = 'xxx';
$user_token = 'xxx';
$base_uri = 'xxx/apirest.php/';
$api_client = new Client(['base_uri' => "$base_uri"]);
$api_tokens = [
'session_token' => $session_token,
'app_token' => $app_token,
];
$params = [
'name' => $_POST['name'],
'serial' => $_POST['serialnumber'],
'contact' => strtoupper($_POST['lastname'])." ".ucfirst($_POST['firstname']),
'computermodels_id' => $_POST['model'],
'manufacturers_id' => $_POST['manufacturer'],
];
$response = $api_client->post( 'Computer/?', [
'form_params' => $params,
'query' => $api_tokens,
]);
$result = json_decode($response->getbody()->getContents());
return $result
Cependant, j'obtiens cette erreur lors de l'envoie de ma requête : `400 Bad Request`, ERROR_BAD_ARRAY, input parameter must be an array of objects.
Le problème vient donc de ma façon de contruire $params mais je ne vois pas comment résoudre celà.
Merci d'avance
Last edited by para (2020-09-29 11:02:53)
Offline
Hello,
Je n'ai pas de solution mais je voulais apporter mon soutient
J'utilise exclusivement le module PowerShell pour manipuler l'API. Je n'ai aucune compétence en PHP pour créer un tableau d'objets
Bon courage !
Offline
Merci pour ta réponse, je suis apparement parvenu à régler ce problème simplement en créant un tableau d'objet de la façon suivant :
$paramsobj = json_decode(json_encode($params));
Mais nouveau problème, aucun computer est crée dans GLPI malgré que ma requête semble fonctionner, en effet la reponse envoyée est un statut 200.
Offline
Encore une fois, Je n'ai aucune expérience de ce genre de chose en PHP.
En PowerShell, quand l'ajout d'un objet fonctionne, on récupère l'ID de l'objet qui a été créé.
Sorry, je ne sais pas vraiment aider plus :-/
Offline
Pages: 1