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

    Tutorial/Beispiele API-Nutzung

    ChurchTools Schnittstellen
    api songbeamer songs anlegen cookie
    3
    3
    431
    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.
    • C
      corth50
      zuletzt editiert von

      Generelle Frage

      Hey, ich studiere momentan Informatik, allerdings komme ich nicht dahinter, wie ich die alte API nutzen kann.
      Ich nutze Python, da es sich zum scripten eignet, wenn jemand in einer anderen Sprache helfen kann, kein Problem.

      response = requests.post(
          "https://kirche.church.tools?q=login/ajax&func=user",
          data={'email': email, 'password': password}
      )
      

      Ausgabe von response.json(): {'status': 'success', 'data': 'Login successful'}. Sieht ja soweit ganz gut aus.
      Den Cookie kann ich mir auch speichern, sieht ungefähr so aus: {'ChurchTools_ct_kirche': 'asdf1234'}
      Wenn ich den Cookie an andere Requests anhänge, kommen allerdings Fehler wie: {"message":"CSRF-Token is invalid","translatedMessage":"Die Session ist abgelaufen, bitte logge dich erneut ein.","messageKey":"exception.unauthorized","args":[],"errors":[]}
      Wo bekomme ich einen solchen Token her? Sorry für die Unwissenheit. Wenn ich sonst API-Keys nutze, erzeuge ich diese in der App selbst.

      Eigentliche Frage

      Mein eigentliches Projekt ist es gerade, Songs per API hochzuladen. Dazu möchte ich durch die Songbeamerdateien (.sng) im Ordner iterieren und pro Datei einen Post-Request machen, in dem ich erforderliche Daten wie Titel angebe und auch die .sng Datei hinzufüge, damit sie direkt in CT beim Song liegt.
      Leider ist der Endpunkt "addNewSong" noch nicht in der neuen API dokumentiert.
      Ich habe auch schon den Beitrag hier bezüglich Song hochladen gelesen, aber bin nicht wirklich schlau daraus geworden, wobei es dann auch um song_arrangement ging, was ich nicht brauche.

      Vielleicht kann mir ja jemand helfen. LG Christopher

      CT Admin in der FeG Erfurt

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

        Hi @corth50,

        ich bin schon über den gleichen Fehler gestoßen. Das Problem ist, dass du zunächst einen CSRF-Token abrufen musst, den du dann im Header "csrf-token" übergeben musst. Den CSRF-Token bekommst du über den REST-Endpunkt https://mychurch.church.tools/api/csrf

        Um einen neuen Song zu erstellen musst du tatsächlich die alte AJAX-API verwenden. Dafür einen POST-Request auf: https://mychurch.church.tools/index.php?q=churchservice/ajax mit folgenden POST-Daten und dem CSRF-Token im Header:

        {
           "bezeichnung": "Neuer SongTitel",
           "songcategory_id": 0,
           "author": "new author",
           "copyright": "test",
           "tonality": "Bb",
           "bpm": 122,
           "beat": "4/4",
           "func": "addNewSong"
        }
        

        Du kannst Dateien allerdings nicht an einen Song anhängen. Du müsstest also erst den Song erstellen, dann das Standard-Arrangement abrufen und an dieser Arrangement dann die Datei hochladen (so wie im verlinkten Forenbeitrag beschrieben).

        Ich hoffe das hilft dir weiter.

        VG Lukas

        davidschillingD 1 Antwort Letzte Antwort Antworten Zitieren 0
        • davidschillingD
          davidschilling ChurchToolsMitarbeiter @DumbergerL
          zuletzt editiert von

          @DumbergerL Danke für die gute Erklärung
          @corth50 hier noch unsere Hilfe Seite zum CSRF: https://hilfe.church.tools/wiki/0/API-CSRF

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