Webhook uitdaging

Hi allemaal, ik heb een bewakingscamera die ook nummerborden op het pad scant. Via een clouddienst (Openalpr) kunnen er via een webhook post alerts gestuurd worden waarmee ik bepaalde flows wil laten starten als mijn of andere kentekens herkend worden.

Nu kan ik met https://5df24xxxxb807eb355cafb.connect.athom.com/api/manager/logic/webhook/startflow prima een flow starten. Dat werkt allemaal wel. De uitdaging/probleem is dat ik de HTTP POST van die online dienst niet kan wijzigen. Die dienst stuurt allemaal info mee zoals hieronder. Het enige wat ik kan invoeren is de URL.

Nu wil ik de flow dus starten als er een webhook ontvangen wordt. Maakt niet uit hoe die er uit ziet. Heeft iemand enig idee hoe ik dat voor elkaar kan krijgen of hoe de URL er uit moet komen te zien waar Openalpr zijn webhook naar post?

Als ik de webhook post naar webhook.site laat sturen ziet de raw data er zo uit:

{
ā€œsite_nameā€: ā€œDESKTOP-KG99KAQā€,
ā€œdescriptionā€: ā€œā€,
ā€œcamera_numberā€: 2090093754,
ā€œagent_uidā€: ā€œ46NHJN8YYBVXI1H1UA345631DR6FM27NO409MCXTZ0ā€,
ā€œalert_listā€: ā€œScanautosā€,
ā€œgroupā€: {
ā€œepoch_startā€: 1587414193991,
ā€œis_previewā€: false,
ā€œcamera_idā€: 209009544,
ā€œframe_startā€: 802529,
ā€œagent_uidā€: ā€œ46NHJN8YYBVA2NA1DR6FM27NO409MCXTZ0ā€,
ā€œbest_confidenceā€: 94.00166320800781,
}

Alle hulp wordt zeer gewaardeerd omdat ik al een week aan het zoeken ben.

Dat gaat met de ingebouwde webhooks niet werken, die werken echt alleen met GET (het zijn ook geen echte webhooks, meer een soort van callbacks).

Je kunt wel de HTTP request flowkaarten app gebruiken, die accepteert ook POST requests met JSON data.

Dank je voor de input. Ondertussen bezig gegaan met HTTP request flowkaarten. Als ik de voorgestelde link gebruik krijg ik de volgende error:

Server responded with HTTP Code: 401
{ā€œcodeā€:401,ā€œerrorā€:ā€œnot_logged_inā€,ā€œerror_descriptionā€:ā€œYou need to log in to access this resourceā€}

Gebruikte link:
https://5dfxxxxxxxxxxxb807eb35xxxfb.connect.athom.com/api/app/com.internet/:event:

Enig idee waarom ik dat krijg?

Waarschijnlijk heb je Authentication in de app settings aan laten staan, die moet uitgezet worden.

Die had ik al uit staanšŸ¤”

Van wat ik weet is dat ze authentication nu verplichten, dus je kan deze niet meer uitzetten.

Werkt zonder problemen bij mij:

$ curl -XPOST 'https://XXX.connect.athom.com/api/app/com.internet/test'
"OK"

Welke flow kaart gebruik je als trigger?

Ok dus uitzetten kan wel maar werkt niet.

Dan komt helaas direct mijn volgende vraag hoe authentication in zijn werk gaat.

Sorry voor de vele vragen hooršŸ˜Š

Als je authenticatie hebt uitgezet moet je wel de app eerst opnieuw opstarten voordat het effect heeft.

Met uit en aan krijg ik met https://XXX.connect.athom.com/api/app/com.internet/test allebei een ā€œokā€ nu. Testbericht via Openalpr geeft nu ook een ok en triggered mijn flow. Nog even afwachten of een echte HTTP post ook de flow gaat triggeren.

Ik houd jullie op de hoogte!

1 Like

Dank voor jullie hulp. Het doet nu wat ik graag zou willen!

Dan nog 1 vraagje: kan ik uit de JSON bv het kenteken KP380J ook in een tag laden ?

{
ā€œsite_nameā€: ā€œDESKTOP-KG7DKAQā€,
ā€œdescriptionā€: ā€œā€,
ā€œcamera_numberā€: 2090093754,
ā€œagent_uidā€: ā€œ46NHJN8YYBVXI1H1UA2NA1DR6FM27NO409MCXTZ0ā€,
ā€œalert_listā€: ā€œScanautosā€,
ā€œgroupā€: {
ā€œepoch_startā€: 1587414193991,
ā€œis_previewā€: false,
ā€œcamera_idā€: 209754,
ā€œframe_startā€: 8041529,
ā€œagent_uidā€: ā€œ46NHJN8YYBVXI1H1UA2NA1DR6FM27NO409MCXTZ0ā€,
ā€œbest_confidenceā€: 94.00166320800781,
ā€œvehicle_crop_jpegā€: ā€œ/9j/4AAQSkZJRgABAQAAAQABAAD/2CigAooAKKAP/2Q==ā€,
ā€œcompany_idā€: ā€œ7fa17173-9618-bdb43d528458ā€,
ā€œversionā€: 2,
ā€œagent_typeā€: ā€œalprdā€,
ā€œbest_plateā€: {
ā€œplateā€: ā€œKP380Jā€,
ā€œconfidenceā€: 94.00166320800781,
ā€œregion_confidenceā€: 99,
ā€œvehicle_regionā€: {
ā€œyā€: 63,
ā€œxā€: 708,
ā€œheightā€: 520,
ā€œwidthā€: 520
},

Dat moet je in verschillende flows gaan doen.

De eerste flow ā€œontvangtā€ de POST:

  • ALS ā€œOntvangen POSTā€
  • DAN ā€œJSONPath for triggerā€ (als JSONPath expressie gebruik je $.group.best_plate.plate, als trigger naam mag je kiezen wat je wilt, bijvoorbeeld gevonden_nummerplaat)

Dan een tweede flow:

  • ALS ā€œJSONPath waardeā€, met als parameter de hierboven gebruikte trigger naam
  • DAN ā€œā€¦ā€ (wat je wilt)
1 Like

Ik ben er nog niet helemaal uit waar ik wat in voer. Het is iig nog niet gelukt

Waar zit je precies vast dan?