Community
    • Categories
    • Recent
    • Popular
    • Users
    • Search
    • Register
    • Login

    Benutzer zu Client auslesen - API

    Scheduled Pinned Locked Moved Entwicklung
    5 Posts 2 Posters 286 Views 2 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • F Offline
      Franky779
      last edited by Franky779

      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

      LFischerL 1 Reply Last reply Reply Quote 0
      • LFischerL Offline
        LFischer @Franky779
        last edited by LFischer

        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

        1 Reply Last reply Reply Quote 0
        • F Offline
          Franky779
          last edited by Franky779

          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

          LFischerL 1 Reply Last reply Reply Quote 0
          • LFischerL Offline
            LFischer @Franky779
            last edited by

            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:

            f50cba25-c2c2-4cf3-9ba8-ad6c716a908b-image.png

            Der "direction" Parameter wird, soweit ich das sehen kann, nicht benötigt / verwendet.

            Ich hoffe das hilft weiter!

            VG Leo

            F 1 Reply Last reply Reply Quote 0
            • F Offline
              Franky779 @LFischer
              last edited by

              @LFischer

              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.

              59f6a2cc-1cf3-499f-91cd-1903c1be5560-image.png

              1 Reply Last reply Reply Quote 0
              • First post
                Last post