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

    ChurchTools API Client (PHP)

    ChurchTools Schnittstellen
    5
    29
    1.5k
    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.
    • sctechS
      sctech @Ralf Bürzele
      zuletzt editiert von

      @ralf-bürzele Ja, genau - wie oben beschrieben, mache ich dies bisher auch immer über /whoami und verwende dann für folgende Abfragen den Session Cookie.

      GET Request: /api/whoami
      URL-Parameter: user_id, login_token
      Login erfolgreich, sofern als id dir korrekte User ID zurück kommt.

      @DumbergerL Vielleicht wäre dies auch für den API Client eine passende Variante, sodass für CTConfig::authWithUserIdAndLoginToken() nicht mehr die alte API benötigt wird?

      DumbergerLD Ralf BürzeleR 2 Antworten Letzte Antwort Antworten Zitieren 0
      • DumbergerLD
        DumbergerL @sctech
        zuletzt editiert von

        @sctech Da hast du grundsätzlich Recht, das wäre eine Möglichkeit. Ich habe allerdings die Methode CTConfig::authWithUserIdAndLoginToken() bereits auf deprecated gesetzt und werde Sie mit dem nächsten Major-Release wieder entfernen, nachdem die Methode CTConfig::authWithLoginToken() ja dasselbe tut ohne eine User-ID zu benötigen.

        sctechS 2 Antworten Letzte Antwort Antworten Zitieren 0
        • Ralf BürzeleR
          Ralf Bürzele @sctech
          zuletzt editiert von Ralf Bürzele

          @sctech /whoami braucht doch keine UserID? oder willst Du nur sicherstellen, daß Du Du bist?

          Pfarrer und CT-Admin der Evang. Kirchengemeinde Althütte

          1 Antwort Letzte Antwort Antworten Zitieren 0
          • sctechS
            sctech @DumbergerL
            zuletzt editiert von

            @dumbergerl Alles klar, das macht Sinn - danke!

            @Ralf-Bürzele Ja, genau - bisher habe ich damit immer sichergestellt, dass ich ich bin. Damit war dann der Login erfolgreich. Der API Client prüft mit CTConfig::authWithLoginToken() nun auf eine gültige ID (nicht leer und nicht -1). Das passt aus meiner Sicht genauso. 😉

            1 Antwort Letzte Antwort Antworten Zitieren 0
            • sctechS
              sctech @DumbergerL
              zuletzt editiert von

              @dumbergerl Ich stehe vor der Herausforderung, dass ich in derselben Anwendung gleichzeitig auf folgendes zugreifen will:

              • gleiche ChurchTools-Installation, verschiedene authentifizierte Benutzer
              • unterschiedliche ChurchTools-Installationen (zum Datenaustausch)

              Wenn ich das richtig sehe, ist das aktuell nicht möglich, weil ich ja nicht mehrere Objektinstanzen des API Clients erstellen kann. Ist das korrekt - oder sehe ich das falsch?

              Zudem müsste dann auch das Caching pro ChurchTools-Installation und User separat erfolgen.

              Eine Idee, wie ich das umsetzen kann?

              Zum Thema Caching eine andere Frage:
              Standardmässig wird das ja auf File-Ebene gemacht. Für die Implementierung in einem WordPress-Plugin wäre allerdings die Verwendung von WordPress-Transienten wünschenswert. Wie kann ich den Caching-Mechanismus beeinflussen?

              Danke fürs Weiterhelfen und eure Ideen! 😉

              DumbergerLD 1 Antwort Letzte Antwort Antworten Zitieren 0
              • DumbergerLD
                DumbergerL @sctech
                zuletzt editiert von

                @sctech Ich habe schon ziemlich am Anfang des Projekts darüber nachgedacht den Client mit verschiedenen Sessions auszustatten. Bisher kam die Anforderung allerdings noch nicht auf, weshalb ich das noch nicht umgesetzt habe.

                Alle statischen Methoden (z.B. CTConfig::setApiUrl(), PersonRequest::whoami(), ...) auf Objektmethoden ($ctConfig->setApiUrl(), $personRequest->whoami()) umzuziehen um verschiedene Sessions zu instanziieren fällt aufgrund der Rückwärtskompatibilität eigentlich raus.

                Aber wie wäre es, wenn man zwischen verschiedenen Sessions wechseln kann?

                // default session:
                $myself = PersonRequest:whoami();
                ...
                // switch session:
                CTSession::switchSession("person_a_session");
                $myselfPersonA = PersonRequest:whoami();
                

                Ich habe das Ganze auch am entsprechenden Issue beschrieben: https://github.com/5pm-HDH/churchtools-api/issues/2 Gib gerne Rückmeldung, ob das für dich eine mögliche Lösung wäre?

                Bezüglich des Caching habe ich auch einen Issue angelegt: https://github.com/5pm-HDH/churchtools-api/issues/169 Ich würde vorschlagen wir implementieren das PSR-6 Caching-Interface, damit man von außen eine andere Caching-Bibliothek injektieren kann. Mit einem Adapter kann man dann ebenfalls Wordpress Transient anbinden. Wann ich zur Umsetzung komme ist offen.

                sctechS 1 Antwort Letzte Antwort Antworten Zitieren 0
                • sctechS
                  sctech @DumbergerL
                  zuletzt editiert von

                  @dumbergerl danke für deine Rückmeldung! Verschiedene Sessions verwenden zu können, wie du es im Issue beschrieben hast, wäre für mich eine schöne und praktikable Lösung. Das würde mir sehr dienen!

                  Bzgl. Caching: Die Möglichkeit zur Implementierung eigener Adapter gefällt mir gut. Für mich persönlich hat diese Sache geringe Priorität.

                  DumbergerLD 1 Antwort Letzte Antwort Antworten Zitieren 0
                  • DumbergerLD
                    DumbergerL @sctech
                    zuletzt editiert von

                    @sctech das Thema Multi-Session habe ich jetzt umgesetzt:

                    • Siehe Doku: https://github.com/5pm-HDH/churchtools-api/blob/master/docs/out/CTConfig.md#3-ct-session

                    Ich hoffe das hilft dir weiter!

                    sctechS 1 Antwort Letzte Antwort Antworten Zitieren 0
                    • sctechS
                      sctech @DumbergerL
                      zuletzt editiert von

                      @dumbergerl TOP! Vielen Dank - das ist echt ein grosser Mehrwert! Werde das gleich nächste Woche mal in einem Projekt ausprobieren. 😊

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