Intégration externe Spotify : URL HTTPS de redirection?

Bonjour,

J’essaie de créer un plugin spotify avec mon compte. J’ai bien créé l’APIWeb, bien noté l’id et le secret, mais je ne comprend pas ce qu’on doit mettre dans l’adresse de retour. J’ai fait plusieurs tentatives sans succès. j’obtiens le message « redirect_uri: Not matching configuration » et je ne suis pas connecté.

Pouvez-vous m’indiquer plus clairement ce qu’on doit mettre dans ce champ?

Merci.

L’API de Spotify impose l’adresse pour la vérification. Il faut soit être en HTTPS, soit être en localhost 127.1.0.0

HTTPS : pas beaucoup de personnes ont une installation en HTTPS.
Sinon, il faudrait une adresse passant par Gladys Plus, mais c’est compliqué pour un service externe.

Et le localhost, cela veut dire qu’il faut que tu lances Gladys depuis un navigateur directement depuis la machine où est installé Gladys. Chose impossible, car pour beaucoup de monde, Gladys tourne sur un Linux Ubuntu serveur. Donc, tu te connectes depuis une adresse en 192.168.x.x. Et cette adresse est non valide par Spotify.

J’ai donc trouvé un moyen de contourner le problème, mais cela veut dire qu’il faut être très strict dans l’adresse que tu déclares côté Spotify.

Je ne suis pas chez moi, mais dès que je rentre, je te donne la procédure et l’adresse à indiquer.
Je verrais pour améliorer la doc.

Hello!

Merci pour la remontée, le sujet est important et il dépasse largement Spotify.

Pourquoi ça bloque

Spotify a durci ses règles de sécurité début 2025 (appliqué aux nouvelles applications depuis le 9 avril 2025, à toutes depuis novembre 2025). Une URL de redirection OAuth n’est désormais acceptée que si :

  • elle est en HTTPS, ou
  • c’est une adresse de loopback explicite : http://127.0.0.1:PORT ou http://[::1]:PORT.

localhost n’est plus accepté, et une IP locale en HTTP (http://192.168.1.50) non plus. Or c’est exactement comme ça que la grande majorité d’entre vous accède à Gladys à la maison : une IP locale, en HTTP, sans certificat. D’où le fameux redirect_uri: Not matching configuration.

C’est une problématique commune à tous les projets auto-hébergés, Home Assistant y a été confronté de la même façon.

Le contournement en attendant

Celui évoqué par @Will_71 fonctionne : déclarer côté Spotify l’URL de callback de Gladys en remplaçant l’IP locale par 127.0.0.1 (en gardant le port et le chemin exactement identiques), puis lancer l’autorisation depuis un navigateur qui tourne sur la machine où est installé Gladys, ou via un tunnel SSH (ssh -L) depuis votre PC.

Ça marche parce que Spotify vérifie uniquement que l’URL correspond au caractère près, il n’a jamais besoin de la joindre lui-même.

Mais soyons honnêtes : c’est parfait pour les bidouilleurs, et inutilisable pour quelqu’un qui pilote son Gladys depuis son téléphone. Ce n’est pas une réponse acceptable à long terme.

La vraie solution : une URL de redirection officielle Gladys

Je vais mettre en place une URL de redirection officielle en HTTPS, hébergée par Gladys, sur le même principe que ce que fait Home Assistant avec my.home-assistant.io.

Le principe :

  1. C’est cette URL officielle (en HTTPS, donc acceptée par Spotify) que vous déclarez dans votre application Spotify, plus besoin de certificat ni de nom de domaine chez vous.
  2. Après votre autorisation, Spotify renvoie sur cette page, qui redirige simplement votre navigateur vers votre Gladys en local, avec un écran de confirmation vous indiquant clairement vers quelle adresse vous allez être renvoyé.
  3. Votre instance termine l’échange elle-même et stocke les jetons en local.

Point important sur la vie privée : cette page est entièrement statique, sans serveur derrière. Vos identifiants Spotify, vos jetons d’accès et vos données ne transitent jamais par nos serveurs, la page ne fait qu’une redirection dans votre navigateur, exactement comme le fait Home Assistant.

Autres avantages :

  • ça marchera pour toutes les intégrations externes qui utilisent une connexion OAuth2, pas seulement Spotify ;
  • pas besoin de Gladys Plus ni d’abonnement : c’est disponible pour tout le monde ;
  • pour celles et ceux qui ont déjà une URL en HTTPS (nom de domaine, reverse proxy), vous pourrez continuer à utiliser la vôtre.

Je m’occupe de la mise en place et je reviens vers vous ici dès que c’est disponible, avec la documentation mise à jour. En attendant, le contournement 127.0.0.1 ci-dessus permet de s’en sortir.

Merci d’avoir remonté le problème :slight_smile:

Parfait.
Merci @pierre-gilles :folded_hands:

Je vois que c’est un pattern assez courant en fait, Synology fait ça, Freebox fait ça :slight_smile:

Claude m’a fait une proposition :

Le site est en cours de déploiement sur CloudFlare…

Hop, dispo sur https://my.gladysassistant.com/

Maintenant, il reste une petite adaptation dans le code de Gladys :slight_smile:

Top ça !
Du coup le service Netatmo pourrait il etre revu pour passer par cette route ? ou alors avoir la possibilité de renseigner la route comme pour spotify ?
Ou alors j’ai pas bien compris :smiley:

Non, c’est un mécanisme complètement différent. :slightly_smiling_face:

Ici, je propose simplement une URL de redirection : tout se passe dans le navigateur. Ça sert uniquement pour le flux OAuth afin de rediriger l’utilisateur vers son instance après l’authentification. C’est gratuit pour moi donc même si un jour on a la même échelle que Home Assistant, je peux continuer à le proposer sans problèmes.

Pour Netatmo, c’est une autre architecture. Les webhooks transitent par les serveurs de Gladys Plus, qui maintiennent en permanence une connexion WebSocket avec l’instance locale de chaque utilisateur pour lui transmettre les événements en temps réel.

Cette infrastructure a un coût (serveurs, connexions persistantes, bande passante, etc.), donc ce n’est pas quelque chose que je peux proposer gratuitement. :slightly_smiling_face:

ah oui je vois j’avais bien pas compris XD
Merci de ton retour.
Je vais revoir ton offre plus voir si elle est de nouveau plus interessante maintenant que certain plugin arrive :slight_smile:

Merci ! :blush:

Je trouve que Gladys Plus reste très abordable au vu des services proposés. Et au-delà des fonctionnalités, ça permet aussi de financer un projet open source français :wink:

Plus Gladys Plus grandira, plus je pourrai consacrer de temps à Gladys et vous proposer de nouvelles fonctionnalités, des améliorations et une meilleure compatibilité avec vos équipements.

Au final, tout le monde y gagne. :grinning_face_with_smiling_eyes:

La PR :

Cela sera utile pour daikin également :slight_smile:

PR mergée, les redirections via my.gladysassistant.com seront disponibles à la prochaine release de Gladys :slight_smile:

C’est dispo pour toutes les intégrations externes qui utilisent Oauth sans aucun changement côté intégration externe !

Bonjour à tous,

Petit retour de l’intégration Spotify. J’ai entré l’adresse donnée par @pierre-gilles , et j’ai bien cru que ça marchait. Je suis arrivé dans la page de connexion de Spotify, je rentre toutes les données demandées (adresse mail du login et code de sécurité reçu pas mail) et PAF, retour à la même page avec le message d’erreur.

J’ai peut-être été trop impatient et la nouvelle mise à jour n’est pas encore installée.
Est-ce possible,

Merci

Oui il faut encore patienter un peu.
Je ferais un essai de mon côté avant et dès que c’est ok je te préviendrais

@pierre-gilles, je te confirme que le lien https fonctionne très bien.

@l.dolle, quand la mise à jour sortira:

La page https va alors s’ouvrir et tu pourras valider. Le compte est connecté

Tu peux vérifier si tu veux qu’un de tes appareil à Spotfy d’ouvert avec l’action Tester la connexion

Excellent, merci d’avoir testé ! Je fais une release ce soir !

C’est live dans la 4.84.4 :