• Aktuell
    • Tags
    • Beliebt
    • Benutzer
    • Gruppen
    • Suche
    • Registrieren
    • Anmelden

    Resourcenbelegung via php curl_exec abfragen

    ChurchTools Schnittstellen
    4
    20
    1.0k
    Lade mehr Beiträge
    • Älteste zuerst
    • Neuste zuerst
    • Meiste Stimmen
    Antworten
    • In einem neuen Thema antworten
    Anmelden zum Antworten
    Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
    • B
      bwl21 @davidschilling
      zuletzt editiert von

      @davidschilling sagte in Resourcenbelegung via php curl_exec abfragen:

      Das Token kannst du dir mit /api/csrftoken holen.
      Generell solltest du aber auch die Session Cookies die ChurchTools sendet nutzen und nur im Login Fall das Login-Token nutzen, sonst machst du mit jedem Api-Call

      Ich sehe noch nicht ganz, wie der login/logout-vorgang geht.

      Verstehe ich richtig, dass ich mich sozusagen mit

      • /api/csrftoken einlogge und dabei das login-token mitschicke
      • in allen folgenden Aufrufen das csrftoken im header und auch das beim ersten Aufruf empfangene Cookie mitschicke
      • Zum Beenden der Session ??? gibt es einen Call zum logout oder wird da einfach auf den timeout gewartet.
      1 Antwort Letzte Antwort Antworten Zitieren 0
      • hbuergerH
        hbuerger ChurchToolsMitarbeiter
        zuletzt editiert von

        Nein der CSRF Token ist kein Login-Token, sondern ein Token, um Formulare zu verifizieren. Es geht hier um eine sogenannte Cross-Site Request Forgery Attacke (MDN - CSRF).

        Du musst diesen CSRF Token abfragen und mit den POSTs bei der alten API mitschicken. Das ist ein Sicherheits-Token. Informiere dich über CSRF, dazu gibt es viele Ressourcen im Internet.

        Wenn du von Einloggen sprichst müssen wir hier unterscheiden.

        1. Mit Benutzernamen + Passwort, dann verwende die /login Endpoints, um eine Session zu generieren
        2. Mit Login Token. Den kannst du (seit v.3.70) einfach als Authorization: Login <token> Header mitschicken. Dann wirst du automatisch "eingeloggt"

        ChurchTools Mitarbeiter – Trainer – Supporter – Academy

        B 1 Antwort Letzte Antwort Antworten Zitieren 0
        • B
          bwl21 @hbuerger
          zuletzt editiert von bwl21

          Dieser Beitrag wurde gelöscht!
          1 Antwort Letzte Antwort Antworten Zitieren 0
          • hbuergerH
            hbuerger ChurchToolsMitarbeiter
            zuletzt editiert von hbuerger

            Guck mal hier https://intern.church.tools/?q=churchwiki#WikiView/filterWikicategory_id:0/doc:API-CSRF/follow_redirect:true/

            Und hier https://intern.church.tools/?q=churchwiki#WikiView/filterWikicategory_id:0/doc:API/follow_redirect:true/

            ChurchTools Mitarbeiter – Trainer – Supporter – Academy

            B 1 Antwort Letzte Antwort Antworten Zitieren 0
            • B
              bwl21 @hbuerger
              zuletzt editiert von bwl21

              @hbuerger sagte in Resourcenbelegung via php curl_exec abfragen:

              Guck mal hier https://intern.church.tools/?q=churchwiki#WikiView/filterWikicategory_id:0/doc:API-CSRF/follow_redirect:true/

              Und hier https://intern.church.tools/?q=churchwiki#WikiView/filterWikicategory_id:0/doc:API/follow_redirect:true/

              Vielen Dank für die Links. Nun bin ich etwas weiter. https://github.com/fodinabor/CT-API-Tools hat mir geholfen. Das Teil von Vinyard Köln scheint mir professioneller und viel umfangreicher. Vor allem scheinen die Leute V1 und V2 wegzukapseln ...

              Für mich ist es aber vielleicht zu komplex zumal ich das ja dann wieder in unser CMS integrieren muss. Da trau ich mich nicht so recht dran. Drum versuche ich erst mal die einfach-Variante.

              Jetzt bin ich am nächsten Punkt: ich versuche nach https://api.church.tools/index.html die API - funktionen zu machen.

              Zum Beispiel nach https://api.church.tools/function-getBookings.html

              /**
               * @param $domain
               * @return mixed
               */
              function CT_getRessourceBookings($domain)
              {
                  $url = $domain . 'churchresource/ajax';
                  $data = array('func' => 'getBookings', 'from' => "0", 'to' => "1");
                  $ret = CT_sendRequest($domain, $url, $data);
                  return $ret;
              }
              

              CT liefert aber immer alle Buchungen und nicht nur die von heut und morgen, d.h. die parameter from und to greifen irgendwie nicht.

              https://api.church.tools/index.html überhaupt richtig?

              hbuergerH 1 Antwort Letzte Antwort Antworten Zitieren 0
              • hbuergerH
                hbuerger ChurchToolsMitarbeiter @bwl21
                zuletzt editiert von

                @bwl21 Musste eben im Code nachgucken. Ja, da ist aktuell ein Bug drin. Die Parameter werden von der API nicht berücksichtig. Ich nehm, dass als Bug auf.

                Akutell bleibt dir leider übrigt, die Einträge manuell zu filtern.

                ChurchTools Mitarbeiter – Trainer – Supporter – Academy

                B 1 Antwort Letzte Antwort Antworten Zitieren 0
                • B
                  bwl21 @hbuerger
                  zuletzt editiert von

                  @hbuerger vielen Dank, dann weiß ich bescheid. Das filtern ist kein problem. Wir wollen das alle 1-3 Stunden laufen lassen.

                  verstehe ich richtig, dass ich mit https://api.church.tools/index.html arbeiten kann.

                  hbuergerH 1 Antwort Letzte Antwort Antworten Zitieren 0
                  • hbuergerH
                    hbuerger ChurchToolsMitarbeiter @bwl21
                    zuletzt editiert von

                    @bwl21 Nur damit wir nicht an einander vorbei reden.

                    https://api.church.tools/index.html ist "nur" die "Dokumentation" der alten AJAX API. Dort kannst du nachgucken, welche Funktionen mit welchen Parametern man theoretisch aufrufen kann.

                    Allerdings wurden die Dokumente meines Wissens nach schon lange nicht aktualisiert (auf der anderen Seite hat sich auch nicht viel daran geändert).

                    ChurchTools Mitarbeiter – Trainer – Supporter – Academy

                    B 1 Antwort Letzte Antwort Antworten Zitieren 0
                    • B
                      bwl21 @hbuerger
                      zuletzt editiert von

                      @hbuerger ja, das habe ich verstanden. Ich versuche, möglichst mit dem V2 API zu arbeiten, wenn ich was unbedingt brauche, nehme ich das V1 Api und hoffe dass es tut:-)

                      1 Antwort Letzte Antwort Antworten Zitieren 1
                      • B
                        bwl21
                        zuletzt editiert von

                        @hbuerger Ich komme in der Sache weiter ...

                        Die Parameter werden von der API nicht berücksichtig. Ich nehm, dass als Bug auf.

                        Damit kann ich leben. Eine andere Frage, ist, ob es auch die Möglichkeit gibt, Wiederholungstermine aufgelöst zu bekommen, sonst muss ich das alles nachrechnen.

                        hbuergerH 1 Antwort Letzte Antwort Antworten Zitieren 0
                        • hbuergerH
                          hbuerger ChurchToolsMitarbeiter @bwl21
                          zuletzt editiert von

                          @bwl21 sagte in Resourcenbelegung via php curl_exec abfragen:

                          Wiederholungstermine aufgelöst zu bekommen, sonst muss ich das alles nachrechnen.

                          Nein, dass ist nicht möglich. Die Wiederholungen musst du aktuell selber berechnen. Liegt an der internen Datenhaltung.

                          ChurchTools Mitarbeiter – Trainer – Supporter – Academy

                          B 1 Antwort Letzte Antwort Antworten Zitieren 0
                          • B
                            bwl21 @hbuerger
                            zuletzt editiert von bwl21

                            @hbuerger sagte in Resourcenbelegung via php curl_exec abfragen:

                            Nein, dass ist nicht möglich. Die Wiederholungen musst du aktuell selber berechnen. Liegt an der internen Datenhaltung.

                            Danke für die schnelle Antwort. Gibt es eine Dokumentation, wie das zu machen ist, vielleicht sogar eine Beispielfunktion (egal ob JS of PHP)? Oder muss ich das "reverse engineeren"?

                            Wie komme ich an die Masterdaten von ressource?: repeat_option_id, status_id

                            hbuergerH 1 Antwort Letzte Antwort Antworten Zitieren 0
                            • hbuergerH
                              hbuerger ChurchToolsMitarbeiter @bwl21
                              zuletzt editiert von

                              Ich mach es kurz:

                              1. MasterData

                              func = getMasterData Gibt alle Stammdaten im Modul zurück (Auch alte AJAX API)

                              2. Wiederholung

                              Hier mal eine Buchung wie sie die API zurück gibt und wie es im Frontend aussieht

                              Bildschirmfoto 2021-03-09 um 09.27.36.png

                              {
                                  "status": "success",
                                  "data": {
                                      "124": {
                                          "id": "124",
                                          "cc_cal_id": null,
                                          "resource_id": "5",
                                          "person_id": "1",
                                          "startdate": "2021-03-08 12:00:00",
                                          "enddate": "2021-03-08 13:00:00",
                                          "repeat_id": "1", 
                                          "repeat_frequence": "1",
                                          "repeat_until": "2021-03-12 00:00:00",
                                          "repeat_option_id": null,
                                          "status_id": "2",
                                          "text": "Serie",
                                          "location": "",
                                          "note": "",
                                          "show_in_churchcal_yn": "0",
                                          "modified_date": "2021-03-09 09:25:45",
                                          "create_date": "2021-03-09 09:25:45",
                                          "person_name": "Hans-Helge Bürger ö ä Ä",
                                          "station_id": "0",
                                          "bezeichnung": "Raum 01",
                                          "version": "0",
                                          "exceptions": {
                                              "10": {
                                                  "id": "10",
                                                  "booking_id": "124",
                                                  "except_date_start": "2021-03-10 00:00:00",
                                                  "except_date_end": "2021-03-10 00:00:00",
                                                  "userid": "",
                                                  "modified_date": "2021-03-09 09:25:46",
                                                  "modified_pid": "1"
                                              }
                                          }
                                      }
                                  }
                              }
                              
                              • startdate und enddate definieren, Startzeit und Endzeit des Termins. Also Anfang vom Meeting und Ende vom Meeting
                              • repeat_id Welche art der Wiederholung (Täglich, wächentlich ...)
                              • repeat_frequence Wie oft die Wiederholung stattfindet
                              • repeat_until Bis wann soll wiederholt werden
                              • exceptions Object mit den Ausnahmen, wann diese Wiederholung nicht stattfindet

                              ChurchTools Mitarbeiter – Trainer – Supporter – Academy

                              1 Antwort Letzte Antwort Antworten Zitieren 0
                              • jziegelerJ
                                jziegeler ChurchToolsMitarbeiter
                                zuletzt editiert von

                                Kurzes Update: der Bug im Filter wird in der Version 3.71 (vermutlich ab 22.03.) gefixt sein

                                1 Antwort Letzte Antwort Antworten Zitieren 0
                                • Erster Beitrag
                                  Letzter Beitrag