Verisure api i hc2

Post Reply
leiff
Ny medlem
Posts: 13
Joined: 11 Feb 2014, 22:53
10
Location: Luleå

Hej
Tänkte försöka koppla upp mig mot verisure api:et direkt i en scen från min hc2:a men får det inte att funka.

Problemet är att sätta "Cookie" i headern (markerat nedan) funkar inte, testar jag varje anrop separat från VisualStudioCode så funkar det, ser status på allting och kan låsa upp/låsa dörrarna. (authorization funkar som det ska)
På nått sätt skickas dock en cookie till api:et men nått blir fel för svaret är "invalid session cookie".
Kopierar jag den cookien till visualStudioCode så får jag korrekt svar.
Nån som har tips på vad som är fel ?

//Leif

Code: Select all

url = <base url for verisure api>;

function Debug(color, message)
    fibaro:debug(string.format('<%s style="color:%s;">%s</%s>', "span", color, message, "span")); 
end
 
function getVerisureUser(cookie)
  	Debug("yellow",cookie);

	HC2:request(url .. "installation/search?email=" .. verisureUser, {
		success = function(resp) Debug("yellow",resp.data); end,
        	error =  function(resp) Debug("red","Error get user!" .. resp) end,
	        options = {
        		headers = {['Cookie'] = "vid=" .. cookie},    --DETTA FUNKAR INTE
        		method = 'GET',
			timeout = 5000
        	}
	});
end

function getVerisureSession()
	Debug("yellow","Login to Verisure API...")
	HC2:request( url .. "cookie", { 
		success = function(resp) getVerisureUser(resp.data) end,
		error =  function(resp) Debug("red","Error logging on to the verisure api!" .. resp) end,
		options = {
			method = "POST",
   			headers = {['Authorization'] = verisureAuth}
	      	}
	});
end

verisureUser = "my.email@gmail.com";
verisureAuth = "Basic xxxxxxxxxxxxxxxx";

HC2 = net.HTTPClient()
getVerisureSession();
Last edited by leiff on 19 Jan 2020, 17:47, edited 2 times in total.
alexndr
Medlem
Posts: 420
Joined: 14 Jul 2016, 14:38
8

Inget svar på din fråga men har Verisure ett publik API nu?
leiff
Ny medlem
Posts: 13
Joined: 11 Feb 2014, 22:53
10
Location: Luleå

Nej, såg hur andra hade löst det och insåg att det inte var så komplicerat att göra anropen.
Då jag inte vet om det är ok att publicera deras api tog jag bort lite ur koden som gör att det går att använda direkt.
Post Reply