ich schreibe gerade ein Modul um, da der Hersteller (nello.io) nun eine API anbietet mit WebOAuth2 und die Möglichkeit Informationen über einen Webhook zu senden.
WebOAuth2 ist fertig, habe ich mit Michael (paresy) eingerichtet und der Bearer Token wird abgeholt. Das funktioniert schonmal.
Jetzt habe ich die Möglichkeit mit PUT einen Webhook zu erstellen, soweit auch klar.
Was habe ich bis jetzt genacht:
In meinem Modul über die Methode RegisterHook($WebHook) die Instanz an die WebHook Instanz (Kern-Instanz) registriert.
Über ProcessHookData() in meinem Modul würde ich die ankommenden Date auswerten.
Wie kann ich jetzt dem Hersteller die ipmagic Adresse mitteilen? Geht das automatisiert, oder muss ich ein Konfigurtionsfeld zur manuellen Eingabe erstellen?
Oder ist die Vorgehensweise eine andere?
Habe mir schon andere Module angesehen, geofency, fitbit… werde aber noch nicht schlau daraus.
Nein Du musst nichts erstellen. Das Aushandeln über OAuth macht der Oauth Server des Herstellers und der OAuth Endpunkt von IP-Symcon. Dem Hersteller ist auch die ipmagic Adresse nicht bekannt, diese bekommt dieser auch niemals mit. Der Hersteller kennt nur IP-Symcon als zertifizierter OAuth Client und den OAuth Server von IP-Symcon. Du identifizierst Dich über den Bearer Token, den Du wiederum vom IP-Symcon Server gesendet bekommst, den Bearer holt der Symon Server für Dich beim Hersteller ab und leitet den an Dich weiter. Die ipmagic Adresse kennt außschließlich Symcon. Wenn also Daten vom Hersteller kommen laufen diese über den Symcon Server und werden dann an das spezielle Symcon System durchgereicht.
Wie die Vorgehensweise genau ist hängt auch davon ab ob Symcon der OAuth Server oder ein Oauth Client darstellt. Dazu müsstest Du vielleicht noch etwas mehr Infos liefern dann kann man Dir auch helfen. Ich nehme eher an Du musst Dich mit dem Bearer authentifizieren und forderst dann Daten von einer Schnittstele der Herstellers an oder?
Äh… Aber der Hersteller muss es doch an den Symcon OAuth Endpunkt senden und nicht an den (per Default nicht gesichert) Webhook einer IPS Installation.
Michael
Die URL sollte eigentlich festgelegt worden sein beim OAuth Process, diese ist also fest, da must Du Dich nicht drum kümmern denn die URL ist ja nicht dein Symcon System sondern auf dem IP-Symcon Oauth Server. Du hast einen oauthIdentifer von Symcon, diesen musst Du nutzten. Damit sagst Du dann dem Symcon Server das alles was dort ankommt eben an das IP-Symcon System durchgereicht werden soll. Dazu registrierst Du im Create Teil
mit
Da sollte die Redirekt URL rein, die festgelegt worden ist, also wie Du sagst in dem Fall
https://oauth.ipmagic.de/forward/nello
Allerdings musst Du diese Daten ja nicht jedes mal festlegen. Diese Daten sind fest beim Hersteller hinterlegt, dieser schickt alles immer an dem Symcon Server. Du bekommst alle Daten dann vom Symcon Server über IP-Symcon Connect.
Wahrscheinlich willst du den WebHook verwenden - es sei denn die Nello API nutzt die selben OAuth Tokens auch für die Hooks - dann kannst du es natürlich auch über den OAuthHook machen (was sicherer wäre).