Benutzer zu Client auslesen - API
-
Hallo zusammen,
ich versuche gerade über die API Daten zu einem Client auszulesen. Für den Client selbst klappt das über die Seriennummer schon ganz gut mit idoit.search.
params = { "q": 12345 } jsondata = objIdoit.getJsonData(method='idoit.search', params=params)
Ich bräuchte jetzt noch den zugehörigen Contact des GEräts. Leider ist es im Netz sehr schwer gute Informationen zur iDoIt Api zu finden. Deshalb habe ich mal den Kollegen ChatGPT gefragt und der liefert mir eine Query die eigentlich ganz gut aussieht. Hier werden offensichtlich die Kontakte von einem Objekt geholt. Leider schlägt die Sache mit Fehler 500 fehl.
##Contacts abfragen params = { "q": { "C__OBJREL__CONTACT": { "ref_id": 12345, "direction": "down" } } } jsondata = objIdoit.getJsonData(method='idoit.search', params=params)
getJsonData() ]:Request did not succeed, Status: 500'
Hat hier wer ne Idee wo es klemmt oder hat vielleicht einen Snipped für mich womit ich dem Objekt zugehörigen Contacts abfragen kann?
VG Frank
-
Hallo @Franky779
der Request sollte eigentlich ganz einfach aussehen - du musst nur die Objekt ID des Geräts kennen, deren Kategorie du lesen willst. Zum Beispiel
1234
:{ "version": "2.0", "method": "cmdb.category.read", "params": { "objID": 1234, "category": "C__CATG__CONTACT", "apikey": "<api-key>" }, "id": 1 }
Diesen Request kannst du mit dem Tool deiner Wahl absetzen und solltest eine Liste aller zugewiesenen Kontakte erhalten.
Solltest du erneut eine 500'er Fehler bekommen kannst du diesen hier gerne teilen
Viele Grüße
Leo -
Danke für die Rückmeldung Ich habe es zwischenzeitlich gelöst. Man muss es mit einer anderen Funktion (cmdb.objects_by_relation.read) abfragen
##Contacts abfragen params = { "type": "C__OBJTYPE__CONTACT", "direction": "down", "relation_type": 5, "status": 2, "id": 12345 } contactdata = objIdoit.getJsonData(method='cmdb.objects_by_relation.read', params=params)
Status 2 ist ein normaler aktiver Contact
relation_type 5 ist eine Person. relation_type 4 für Admins geht leider nicht, obwohl ich dort als Admin eingetragen bin.
https://kb.i-doit.com/en/i-doit-pro-add-ons/api/methods/cmdb.objects_by_relation.html#__tabbed_1_3 -
Hey @Franky779
in vielen Fällen (wie auch hier) sollte es möglich sein Konstanten zu nutzen um die Requests etwas "lesbarer" zu gestalten
Für den "relation_type" könntest du
"C__RELATION_TYPE__USER"
oder"C__RELATION_TYPE__ADMIN"
nutzen.Der "Admin" Typ müsste eigentlich klappen, wenn du die Admin-Rolle verwendest Die beiden Beziehungstypen sehen im Frontend so aus:
Der "direction" Parameter wird, soweit ich das sehen kann, nicht benötigt / verwendet.
Ich hoffe das hilft weiter!
VG Leo
-
Danke. Der Benutzer hat auf jeden Fall "Administrator und primary"
Die Abfrage mit C__RELATION_TYPE__ADMIN liefert kein Ergebnis. C__RELATION_TYPE__USER mir brav den Contact.