Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Einrichtung der neuen API zu FE2 #240

Closed
CREW8 opened this issue Dec 20, 2021 · 5 comments
Closed

Einrichtung der neuen API zu FE2 #240

CREW8 opened this issue Dec 20, 2021 · 5 comments
Assignees
Labels
Type: Support Related to usage, not the software itself

Comments

@CREW8
Copy link

CREW8 commented Dec 20, 2021

Hallo Zusammen,

seit einiger Zeit nutzt unsere Feuerwehr dieses Einsatzverwaltungs Plugin mit der REST-API von WordPress um Einsätze von FE2 zu importieren. Die neue Version FE2.24 wurde nun auch auf unserem Server installiert, jedoch funktioniert die Schnittstelle nicht (mehr).

Da ja nun die neue Schnittstelle implementiert wurde habe ich alle Einstellungen rückgängig gemacht, die ich damals für die alte REST-API vorgenommen habe. Leider funktioniert seit dem gar nichts mehr. Leider werde ich auch aus der Dokumentation auf der Webseite nicht viel schlauer, daher hoffe ich das man mir und anderen hier weiterhelfen kann.

Aktuell nutze ich folgenden Aufbau:
Ich habe einem Account die Benutzerrechte "Incident Reports API" zugewiesen und ein Anwendungspasswort vergeben.
Weiter habe ich Diese Benutzerdaten (Benutzername und Anwendungspasswort) und den Endpunkt https://www.feuerwehr-xyz.de/?rest_route=/einsatzverwaltung/v1/reports in FE2 eingegeben.

Nach dem senden eines TestAlarms konnte ich mit verschiedenen konfigurationen der .htaccess Datei verschiedene Fehlermeldungen verursachen:

  1. {"code":"rest_forbidden","message":"Du bist leider nicht berechtigt, diese Aktion durchzuf\u00fchren.","data":{"status":401}}
  2. {"code":"jwt_auth_bad_auth_header","message":"Authorization header malformed.","data":{"status":403}}
  3. {"code":"incorrect_password","message":"Das eingegebene Passwort ist ein ung\u00fcltiges Anwendungspasswort.","data":{"status":401}}

Nebenher habe ich mit cURL von Windows Anfragen geschickt, welche immer mit der selben Fehlermeldung endeten wie Alamos:
curl --basic --user user:password --data @params.json -H "Content-Type: application/json" https://www.feuerwehr-xyz.de/?rest_route=/einsatzverwaltung/v1/reports

wobei "params.json" folgendes enthielt:

{
  "reason": "Böschungsbrand",
  "date_start": "2021-09-24T17:14:34+02:00",
  "date_end": "2021-09-24T19:31:41+02:00",
  "content": "Der Beitragstext\nmit Zeilenumbruch",
  "publish": true,
  "location": "A-Dorf",
  "keyword": "B 2",
  "resources": "A-Dorf 10/1,A-Dorf 40/1,A-Dorf 40/2,KBM 2/1"
}

Ich würde mich sehr über eine kleine Anleitung freuen, wie ich das einrichten muss, damit es läuft.

@abrain abrain added the Type: Support Related to usage, not the software itself label Dec 21, 2021
@abrain abrain self-assigned this Dec 21, 2021
@abrain
Copy link
Owner

abrain commented Dec 21, 2021

Hallo,

also nachdem der Test mit curl fehlschlägt, ist auf jeden Fall was im Busch. Ich habe das mal mit demselben curl-Kommando auf meiner Test-Instanz ausprobiert und es hat funktioniert. Allerdings musste ich user:password in Anführungszeichen fassen, da das Anwendungspasswort Leerzeichen enthält.

Die Fehlermeldung 2 oben macht mich noch stutzig. Ist das JWT-Plugin noch aktiv? Falls das nur für die alte FE2-Integration genutzt wurde, sollte das deaktiviert und entfernt werden. Das gleiche gilt dann auch für die dafür vorgenommenen Änderungen in der .htaccess.

Was dann die Einrichtung in FE2 angeht, kann ich nur auf die Anleitung von Alamos verweisen, da ich FE2 nicht selbst benutze. Allerdings wurde diese Anleitung noch nicht aktualisiert. Auch in den Änderungen der Version 2.24 habe ich keinen Hinweis auf das aktualisierte Ausgangsplugin gefunden. Entweder ist da was bei der Doku durchgerutscht, oder die Änderung hat es doch nicht in die 2.24 geschafft.

Die Doku API für Drittsysteme ist für diejenigen gedacht, die Integrationen bauen wollen. Um den Pfad ?rest_route=/einsatzverwaltung/v1/reports o.ä. sollten sich Endanwender nicht kümmern müssen. Ich gehe davon aus, dass man in FE2 (oder später in anderen Integrationen) nur https://feuerwehr-example.de eingeben muss.

@CREW8
Copy link
Author

CREW8 commented Dec 21, 2021

Hallo,

vielen Dank für die schnelle Hilfe. Ich habe tatsächlich das JWT-Plugin nicht deaktivert gehabt, was dazu geführt hat, dass die API des Einsatzverwaltungs-Plugins irgendwie blockiert wurde. Weiter habe ich in der .htaccess Datei noch den Zusatz RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] ergänzen müssen. Nun läuft alles reibungslos.

Ich habe es vorhin mit Alamos und dem neuen Update FE2.24 getestet und die Einsatz-Daten werden korrekt übergeben. Die Fahrzeuge werden von Alamos erst übergeben, wenn ein realer Einsatz ausgelöst wird, daher konnte ich dies noch nicht testen.

Vielen Dank und Viele Grüße

@abrain
Copy link
Owner

abrain commented Dec 21, 2021

Super, dass es jetzt klappt! 👍🏻

Ja, der Eintrag RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] in der .htaccess ist einer der Standardeinträge. Sogesehen war es dann ein Zurückdrehen der Veränderungen, die für das JWT-Plugin vorgenommen werden mussten.

Nachdem das gelöst ist, schließe ich den Issue erst mal. Ich pinne ihn aber an, damit er leichter gefunden wird.

Ich hoffe, dass Alamos noch einen Upgrade Guide veröffentlicht. Ich schreibe sie dazu gleich mal an.

@abrain abrain closed this as completed Dec 21, 2021
@abrain abrain pinned this issue Dec 21, 2021
@Manuel1607
Copy link

Hallo,
kann mir jemand helfen, ich habe auch die 2.24 installiert und bei mir geht es leider nicht. Ich habe dem Nutzer auch die Rechte Incident Reports API zugewiesen und leider kommt bei mit die Fehlermeldung, Der Einsatz konnte nicht angelegt werden (Du bist leider nicht berechtigt, diese Aktion durchzuführen.)

Jemand ne Idee? Habe ich was vergessen?

@Manuel1607
Copy link

Folgendes sagt die Log Datei im FE2

Neuer Eingegangener Alarm

Typ: MANUAL

Externe ID: null

Key: "pluginmessage" Value: ""

Key: "keyword_description" Value: "test"

Key: "alarmType" Value: "MANUAL"

Key: "alarmState" Value: "NEW"

Key: "address" Value: "testeinheit_datei"

Key: "withStatistic" Value: "true"

Key: "keyword" Value: "test"

[00015]

01.01.2022 - 14:31:10.124 INFO |00015| [00015 - 15] AlarmPool - Neuer eingehender Alarm für "testeinheit_datei"
01.01.2022 - 14:31:10.125 INFO || [00015 - 15] AlarmPool - Anzahl aktiver Alarmabläufe: 1
01.01.2022 - 14:31:10.126 INFO |00015| [pool-15-thread-10] PipelineController - Bereite Ausführung der Pipeline für 'testeinheit_datei' vor
01.01.2022 - 14:31:10.126 INFO || [pool-15-thread-10] AlarmPool - Prüfe auf Doppelalarm...
01.01.2022 - 14:31:10.127 INFO |00015| [pool-15-thread-10] AlarmPool - Alarm für 'testeinheit_datei' wird von der Doppelalarm-Überprüfung ausgeschlossen
01.01.2022 - 14:31:10.131 INFO |00015| [pool-15-thread-10] AAOController - Alarmstichwort bereits vorhanden: test
01.01.2022 - 14:31:10.132 INFO |00015| [pool-15-thread-10] AddressGenerator - Versuche Einsatz-Adresse zu berechnen aus Feld (Modus: [COORDINATES_DEZ, COORDINATES_HEX, COORDINATES_GK])...
01.01.2022 - 14:31:10.132 WARN |00015| [pool-15-thread-10] AddressGenerator - Keine Adresse im Modus COORDINATES_DEZ gefunden
01.01.2022 - 14:31:10.133 WARN |00015| [pool-15-thread-10] AddressGenerator - Keine Adresse im Modus COORDINATES_HEX gefunden
01.01.2022 - 14:31:10.134 WARN |00015| [pool-15-thread-10] AddressGenerator - Keine Adresse im Modus COORDINATES_GK gefunden
01.01.2022 - 14:31:10.134 INFO |00015| [pool-15-thread-10] AddressGenerator - Gefundene Adresse: null , null null
01.01.2022 - 14:31:10.140 INFO || [pool-14-thread-9] VehicleController - Alarm ist kein Status
01.01.2022 - 14:31:10.249 INFO || [pool-15-thread-10] OnlineServicesController - Keine gültige oder aktive Rückmeldegruppe gefunden
01.01.2022 - 14:31:10.259 INFO |00015| [pool-15-thread-10] PipelineController - Für die Einheit 'Testeinheit Datei' (testeinheit_datei) wurde keine Rückmeldung aktiviert
01.01.2022 - 14:31:10.261 INFO |00015| [pool-15-thread-10] PipelineController - Pipeline-Vorbereitung beendet für testeinheit_datei
01.01.2022 - 14:31:10.261 INFO |00015| [pool-36-thread-9] Pipeline - Pipeline gestartet für Einheit (testeinheit_datei)
01.01.2022 - 14:31:10.261 INFO || [pool-36-thread-9] Pipeline - Pipeline von Einheit (testeinheit_datei) wurde gestartet
01.01.2022 - 14:31:10.273 INFO |00015| [EinsatzverwaltungThread-174797] PluginController - PluginController mit Plugin de.alamos.fe2.plugin.einsatzverwaltung.Einsatzverwaltung (Admin0) wurde gestartet
01.01.2022 - 14:31:12.480 WARN || [EinsatzverwaltungThread-174797] EinsatzverwaltungRequestHandler - {"code":"rest_forbidden","message":"Du bist leider nicht berechtigt, diese Aktion durchzuf\u00fchren.","data":{"status":401}}
01.01.2022 - 14:31:12.491 INFO |00015| [EinsatzverwaltungThread-174797] PluginController - PluginController mit Plugin de.alamos.fe2.plugin.einsatzverwaltung.Einsatzverwaltung (Admin0) nach 2216 ms beendet
01.01.2022 - 14:31:12.493 ERROR |00015| [pool-36-thread-9] Pipeline - ERRNO#0001 PluginController de.alamos.fe2.plugin.einsatzverwaltung.Einsatzverwaltung (Admin0) wird nach einem Fehler übersprungen
01.01.2022 - 14:31:12.655 INFO |00015| [pool-36-thread-9] Pipeline - Alarmabarbeitung beendet
01.01.2022 - 14:31:12.658 INFO || [pool-36-thread-9] Pipeline - Alarmablauf von Einheit (testeinheit_datei) wurde nach 00:00:02.396 beendet. Fehler aufgetreten: Ja. Warnungen: Nein
01.01.2022 - 14:31:12.685 INFO || [Thread-433] AlarmPool - Anzahl aktiver Alarmabläufe (nach Stopp): 0
01.01.2022 - 14:31:13.160 INFO || [qtp1114884286-9671] OnlineServicesController - Status: 200
01.01.2022 - 14:31:13.166 INFO || [qtp1114884286-9669] OnlineServicesController - Status: 200

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Support Related to usage, not the software itself
Projects
None yet
Development

No branches or pull requests

3 participants