Aller au contenu

Messages recommandés

Posté(e)

Bonjour a tous,

j’essaye de créer un bouton lecture pour mon lecture squeezbox.

Malheureusement ça marche pas. Voici le code ;

 

function QuickApp:setValue(Value)
    self:debug("Lecture ok")
    self:updateProperty("value"false
 
local http = net.HTTPClient()
http:request("http://login:pass@172.20.254.250:9002/status_header.html?p0=play&player=cc%3Acc%3Acf%3A10%3A61%3A81", {
 
options = {
            headers = {
                ["content-type"] = "application/json;charset=UTF-8",
                ["Authorization"] = "Basic pwd=",
                ["Cache-Control"] = "no-cache, no-store",                
                ["X-Fibaro-Version"] = "2"
            },
            method = "GET"
        },
})
 
end
 
function QuickApp:uibtnlectureReleased(event)
self:setValue(Value)
 
end
Posté(e) (modifié)

Je pense que le login:pass dans l'adresse est en trop, il faut le mettre dans le ["Authorization"] = "Basic ...", encodé en base64.

EDIT : ou enlever la ligne avec le laisser dans l'URL...

["Authorization"] = "Basic pwd=",

il serait bien de récupérer le retour de la commande avec un success = function(response)... et error = function(err)... et d'afficher ce retour !

afin de savoir ce qu'il ne marche pas...

Modifié par jjacques68
Posté(e)

Merci de ton aide, j'ai rajouter ;

 

function QuickApp:setValue(Value)
    self:debug("Lecture ok")
    self:updateProperty("value"false

 

local http = net.HTTPClient()
http:request("http://login:pass@172.20.254.250:9002/status_header.html?p0=play&player=cc%3Acc%3Acf%3A10%3A61%3A81", {

 

options = {
            headers = {
                ["content-type"] = "application/json;charset=UTF-8",
                ["Authorization"] = "Basic pwd=",
                ["Cache-Control"] = "no-cache, no-store",                
                ["X-Fibaro-Version"] = "2"
            },
            method = "GET"
        },
       success = function(response)
            self:debug("response status:", response.status) 
            self:debug("headers:", response.headers["Content-Type"]) 
            local data = json.decode(response.data)  
            if data.contents and data.contents.quotes and data.contents.quotes[1then
                local quote = data.contents.quotes[1].quote
                self:debug(quote)
                self:updateView("label""text", quote) 
            end
        end,
        error = function(error)
            self:debug('error: ' .. json.encode(error))
        end
})
 
end

 

function QuickApp:uibtnlectureReleased(event)
self:setValue(Value)

 

end
 
Le retour me donne ;
[QUICKAPP115]: Lecture ok[19.04.2020] [10:36:20]
[DEBUG] [QUICKAPP115]: response status: 401[19.04.2020] [10:36:20]
[DEBUG] [QUICKAPP115]: headers: text/html[19.04.2020] [10:36:20]
[ERROR] [QUICKAPP115]: QuickApp crashed[19.04.2020] [10:36:20]
[ERROR] [QUICKAPP115]: /usr/share/lua/5.3/json/decode/util.lua:35: unexpected character @ character: 1 0:1 [<] line:

 

Posté(e)

pense à utiliser le bouton "</>" de l'éditeur du forum quand tu postes du code... c'est plus lisible...

 

je mettrais que ça dans les fonctions : le reste te cause les "ERROR" dans le debug...

success = function(response)
            self:debug("response status:", response.status) 
end,
error = function(error)
            self:debug('error: ' .. json.encode(error))
end

et on peut déjà voir que le status est 401 !

 

donc problème d'authentification !

 

utilise la balise "Authorization" du Header !!

et enlève les info d'authentification de l'URL.

 headers = {
                ["content-type"] = "application/json;charset=UTF-8",
                ["Authorization"] = "Basic ton_login:ton_mot_de_passe_en_base_64",
                ["Cache-Control"] = "no-cache, no-store",                
                ["X-Fibaro-Version"] = "2"
            },

 

 

Posté(e)

tu enlève juste le "@" tu gardes les ":"

 

n'oublies pas de supprimer dans l'URL aussi :

elle doit ressembler à ça :

http:request("http://172.20.254.250:9002/status_header.html?p0=play&player=cc%3Acc%3Acf%3A10%3A61%3A81", {

 

×
×
  • Créer...