ciao, sono alle prime armi e non sono riuscito a capire come formulare correttamente la chiamata da remoto. ad esempio https://shelly-##-eu.shelly.cloud/device/status-d"id=##########&auth_key=#####......" restituisce l'errore {"isok":false,"errors":{"invalid_header":"Unauthorized! Wrong authorization header provided!","invalid_token":"The login information is invalid! Please login again!"}}linuxman74 ha scritto: ↑venerdì 8 gennaio 2021, 15:04Ho scoperto il motivo.
Riporto dalla documentazione delle API di Shelly:
"Each resource may also accept a list of Parameters which should be supplied either as query-string in the URL or as application/x-www-form-urlencoded POST payload."
Quando lancio la URL da un browser sto facendo una richiesta GET e non POST. Quindi per funzionare devo fare una richista POST su https://shelly-<qualcosa>/device/relay/control
E tutti i parametri vanno passati nel body.
Infatti passando tutto sulla chiamata GET otteniamo subito dal server un bel HTTP/1.1 400 Bad Request semplicemente perchè non processa i dati che gli arrivano.
Risolto l'arcano. Quindi mi basta usare curl passando i parametri con -d ".." e funziona tutto alal perfezione.
p.s.
Per chi mi ha risposto che devo passare l'IP dello Shelly non ha capito che questa cosa non sto cercando di farla in locale, quindi niente IP, sto usando infatti il server cloud con auth_key
potresti per favore postare un url d'esempio funzionante? sai se questo metodo potrebbe funzionare con macrodroid? stavo cercando un'alternativa a IFTTT.
grazie