Templates by BIGtheme NET
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
  • Seite:
  • 1
  • 2

THEMA:

Internet PI und Rest API 08 Aug 2021 21:07 #7

  • Dennis
  • Denniss Avatar
  • Abwesend
  • Administrator
  • Administrator
  • Beiträge: 202
  • Dank erhalten: 257
Hallo zusammen,

ich habe mich nun doch schon mit diversen "apis" auseinandergesetzt und kann da gern meine Unterstützung anbieten. Unter anderem habe ich auch schon Systeme mit 2Faktor-Anmeldung ans "sprechen" mit cX5 gebracht. Ich kenne Nextcloud und deren Kanban zwar ganz gut (benutzen wir selbst im Betrieb), aber mit den Apis habe ich mich bisher wenig auseinandergesetzt. Zur Authentifizierung gibt es aber unter Anderem ein Verfahren mit Challenge im Browser. Hast du vielleicht die Links zur Defintion der Apis in der Doku von Nextcloud parat, Joachim? Ich finde durchaus auch welche, aber bin mir nicht sicher, ob das unter diesen 5 oder 6 Stück daraus die richtigen sind.

Dann gehe ich gern mal dran und versuche mich, vielleicht profitieren wir mit unserer Nextcloud hier ja auch eines Tages sogar davon.

Viele liebe Grüße Dennis
Folgende Benutzer bedankten sich: Soko

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Internet PI und Rest API 09 Aug 2021 07:16 #8

  • Soko
  • Sokos Avatar Autor
  • Offline
  • Platinum Boarder
  • Platinum Boarder
  • Beiträge: 535
  • Dank erhalten: 438
Moin Dennis,

Danke!
Die APIs findest Du hier:
deck.readthedocs.io/en/latest/API/
deck.readthedocs.io/en/latest/API/#ocs-api
docs.nextcloud.com/server/latest/develop...eeper/rest_apis.html

Und nachfolgend mein Skriptgerüst zum Login bzw. Erstellen eines App-Passwortes sowie NC- als auch Deck-Abfrage.
Das Skript setzt voraus, dass auf dem Rechner curl installiert ist (sollte bei neueren Win10 mit an Bord sein).

Wenn Du einen Testzugang brauchst, schreibe Bescheid.

Zur Authentifizierung gibt es aber unter Anderem ein Verfahren mit Challenge im Browser.

Das dürfte ich in meinem Skritptgerüst schon gelöst haben. Einziges Problem, die legitimation klappte aktuell nicht mit dem Internet PI (siehe Antwort von Stefan).
Achtung: Die Logindaten werden noch im Klartext im Temp-Verzeichnis auf dem Rechner abgelegt!

Mein Gedanke ist, meine Wiedervorlagen- und Fristenverwaltung mit Deck zu synchronisieren...
...somit werden sie einerseits in Deck übersichtlicher dargestellt und andererseits können Sie auch mit der Mobil-Deckapp bearbeitet werden.

Ich denke das dürfte letztendlich etwas sein, was vielfältig zum Projektmanagement verwandt werden kann...

Dann gehe ich gern mal dran und versuche mich, vielleicht profitieren wir mit unserer Nextcloud hier ja auch eines Tages sogar davon.


:-)

@Stefan, wenn das funktioniert, könnte das auch ein EInfallstor für Dich sein, cX5 als einfaches Werkzeug zum Nextcloudzugriff zu bewerben... ;-)

Ciao,
Joachim

cX4Web cX4Web Code

Was ist das?

1  *** Nextcloud und Deck API abfragen
2  Einstellungen INI lesen in [cloudurl], Pfad 'Nextcloud', Name 'cloudurl', Quelle/Datei '[cX.temppfad]nczugang.siu'
3  Einstellungen INI lesen in [nclogin], Pfad 'Nextcloud', Name 'nclogin', Quelle/Datei '[cX.temppfad]nczugang.siu'
4  Einstellungen INI lesen in [ncAppPw], Pfad 'Nextcloud', Name 'ncAppPw', Quelle/Datei '[cX.temppfad]nczugang.siu'
5  Wenn (? Text leer '[cloudurl]')
6   Aufruf Marke 'ncFreischalten'
7  Ende Wenn
8  :: Nochmal
9  Meldung 'Was möchten Sie abfragen?', Titel 'Cloudabfrage', Buttons 'NC Konfig¶Deck Konfig¶Decks¶Beenden', Symbol 'Frage'
10  Wenn (? '[cX.Antwort]=1001')
(11   Internet: HTTP-Abfrage, URL '[cloudurl]/ocs/v1.php/cloud/capabilities', Sendetext '"OCS-APIRequest= true"¶' in Eingabe
12   Starte curl.exe '-u [nclogin$]:[ncAppPw$] -X GET [cloudurl$]/ocs/v1.php/cloud/capabilities -H "OCS-APIRequest: true"', warten bis beendet, Konsole, Empfang in [Eingabe]
13  Sonst (? '[cX.Antwort]=1002')
14   Starte curl.exe '-u [nclogin$]:[ncAppPw$] [cloudurl$]/ocs/v2.php/apps/deck/api/v1.0/config/ -H "OCS-APIRequest: true"', warten bis beendet, Konsole, Empfang in [Eingabe]
15  Sonst (? '[cX.Antwort]=1003')
16   Starte curl.exe '-u [nclogin$]:[ncAppPw$] [cloudurl$]/index.php/apps/deck/api/v1.0/boards -H "OCS-APIRequest: true"', warten bis beendet, Konsole, Empfang in [Eingabe]
17   Datei schreiben '[cx.temppfad]temp2.tmp', Text '[Eingabe$]', (Erst) löschen
18   Einstellungen JSON XML/JSON formatieren in [Eingabe], Quelle/Datei '[cx.temppfad]temp2.tmp'
19  Sonst
20   Beende Skript
...

cX4Web Code: Einfach anklicken zum Kopieren und in click.EXE 5.0 einfügen


(56 Zeilen, cX 5.0.8.2)

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Letzte Änderung: von Soko.

Internet PI und Rest API 09 Aug 2021 10:25 #9

  • Dennis
  • Denniss Avatar
  • Abwesend
  • Administrator
  • Administrator
  • Beiträge: 202
  • Dank erhalten: 257
Hallo Joachim,

ich konnte es schon lösen. Ich habe die Zeile 12 deines Beispiels bearbeitet: Vielleicht hast du es im Eifer des Gefechts nicht gesehen, jedoch war die Zielvariable mit [] benannt - dort gehört jedoch nur der Name hinein. Weiter wurde der OCS-API Header von dir im Feld "Sendetext" eingetragen, was dann eine Post-Anfrage macht und den Eintrag nicht als Header übermittelt. Auch danach funktionierte es zunächst nicht. Erst, als ich die Authentifizierung manuell im Authentication-Header gesetzt habe, klappt es nun vollständig.

Hier könntest du vielleicht noch mal prüfen, wie die beiden Eingabefelder für Name und Passwort im Vergleich dazu arbeiten, Stefan?

Beim Authentifizieren wird der Name und das PW nur aus technischen Gründen in einen Base64-String verwandelt (durch Doppelpunkt getrennt). Daher sollte zwingend TLS-Verschlüsselung verwendet werden.

Betreibst du deine Nextcloud selbst? In diesem Zusammenhang empfehle ich auch eine Web-Application Firewall, die den Cloud-Server noch zusätzlich für Anfragen von Außen kapselt.

Nun genug Gerede - hier ist die fertige Zeile, auf deren Basis du deine restlichen Skripte anpassen kannst. Das funktioniert dann gänzlich ohne Curl.

cX4Web cX4Web Code

Was ist das?

1 Internet: HTTP-Abfrage, URL '[cloudurl]/ocs/v1.php/cloud/capabilities' in [Eingabe]

cX4Web Code: Einfach anklicken zum Kopieren und in click.EXE 5.0 einfügen


  (1 Zeilen, cX 5.0.8.3, Lizenz: Internet)



Noch ein Hinweis am Rande: Ich empfehle dir, die Api-Anfragen in eine Funktion oder (dank Premium) vielleicht auch ein Objekt zu stecken. Wenn du das richtig gut ausbaust und eines Tages hunderte Anfragen in deinem System hast, gerätst du sonst bei Änderungen der Api seitens Nextcloud ins Schwitzen...

Viele liebe Grüße Dennis
Folgende Benutzer bedankten sich: Soko, daywalker, Motoxtreme

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Internet PI und Rest API 09 Aug 2021 10:40 #10

  • Soko
  • Sokos Avatar Autor
  • Offline
  • Platinum Boarder
  • Platinum Boarder
  • Beiträge: 535
  • Dank erhalten: 438
Hallo Denis,

WOW, grandios, da hast Du mir erst einmal geholfen.
Die Änderung klappt...
Und ja, den Fehler mit den Variablen in Klammern mach ich leider häufiger und hatte ich hier noch übersehen: -|

Erst, als ich die Authentifizierung manuell im Authentication-Header gesetzt habe, klappt es nun vollständig.

Da muss man erst einmal drauf kommen.
Ich versuche jetzt auch die anderen curl zu ersetzen...

Betreibst du deine Nextcloud selbst?

Ja. Guter Hinweis, da muss ich mir ModSecurity mal näher ansehen...

die Api-Anfragen in eine Funktion oder (dank Premium) vielleicht auch ein Objekt zu stecken.

Genau das habe ich vor...

Herzliche Grüße,
Joachim


 

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Internet PI und Rest API 09 Aug 2021 11:13 #11

  • Stefan
  • Stefans Avatar
  • Abwesend
  • Administrator
  • Administrator
  • Beiträge: 1118
  • Dank erhalten: 1653
Hallo, Leute!

Die nächste Internet-PI-Version macht genau das wie ihr und setzt diesen "Authorisation"-Header mit dem Base64.
Geht natürlich auch manuell wie bei euch - schön, wie flexibel cX doch ist...!

Liebe Grüße
Stefan
Folgende Benutzer bedankten sich: Soko, daywalker, Motoxtreme

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Seite:
  • 1
  • 2

Community

Wir benutzen Cookies

Wir nutzen Cookies auf unserer Website. Diese Cookies sind essenziell für den Betrieb dieser Website. Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.

Sie sind noch nicht Mitglied unserer Community? Melden Sie sich jetzt an!

Anmelden