Externe Spotify-Integration: HTTPS-Umleitungs-URL?

Hallo,

Ich versuche, ein Spotify-Plugin mit meinem Konto zu erstellen. Ich habe die APIWeb erfolgreich erstellt, die ID und das Geheimnis notiert, aber ich verstehe nicht, was ich in die Rückrufadresse eintragen muss. Ich habe mehrere Versuche ohne Erfolg unternommen. Ich erhalte die Meldung „redirect_uri: Nicht mit der Konfiguration übereinstimmend“ und bin nicht verbunden.

Können Sie mir klarer mitteilen, was in dieses Feld eingetragen werden muss?

Danke.

Die Spotify-API erfordert eine Adresse zur Überprüfung. Entweder muss es HTTPS sein oder localhost 127.1.0.0

HTTPS: Nicht viele Leute haben eine HTTPS-Installation.
Alternativ müsste eine Adresse über Gladys Plus verwendet werden, aber das ist für einen externen Dienst kompliziert.

Und localhost bedeutet, dass du Gladys direkt von einem Browser aus auf dem Gerät starten musst, auf dem Gladys installiert ist. Das ist unmöglich, denn für viele läuft Gladys auf einem Linux Ubuntu-Server. Also verbindest du dich von einer Adresse wie 192.168.x.x. Und diese Adresse wird von Spotify nicht akzeptiert.

Ich habe also einen Weg gefunden, das Problem zu umgehen, aber das bedeutet, dass die Adresse, die du bei Spotify angibst, sehr streng sein muss.

Ich bin nicht zu Hause, aber sobald ich zurück bin, gebe ich dir das Verfahren und die Adresse, die du angeben musst.
Ich werde die Dokumentation verbessern.

Hallo!

Danke für den Hinweis, das Thema ist wichtig und geht weit über Spotify hinaus.

Warum es blockiert

Spotify hat seine Sicherheitsregeln Anfang 2025 verschärft (für neue Anwendungen ab dem 9. April 2025, für alle ab November 2025). Eine OAuth-Umleitungs-URL wird nun nur noch akzeptiert, wenn:

  • sie HTTPS ist, oder
  • es eine explizite Loopback-Adresse ist: http://127.0.0.1:PORT oder http://[::1]:PORT.

localhost wird nicht mehr akzeptiert, und eine lokale IP in HTTP (http://192.168.1.50) auch nicht. Genau so greifen die meisten von euch jedoch auf Gladys zu: über eine lokale IP, in HTTP, ohne Zertifikat. Daher die berühmte Fehlermeldung redirect_uri: Not matching configuration.

Das ist ein Problem, das alle selbstgehosteten Projekte betrifft, auch Home Assistant hatte damit zu kämpfen.

Die vorläufige Lösung

Die von @Will_71 vorgeschlagene Lösung funktioniert: Gebt bei Spotify die Callback-URL von Gladys an, indem ihr die lokale IP durch 127.0.0.1 ersetzt (Port und Pfad müssen exakt gleich bleiben), und startet die Autorisierung dann von einem Browser aus, der auf dem Rechner läuft, auf dem Gladys installiert ist, oder über einen SSH-Tunnel (ssh -L) von eurem PC aus.

Das funktioniert, weil Spotify nur prüft, ob die URL exakt übereinstimmt, und sie nie selbst aufrufen muss.

Aber seien wir ehrlich: Das ist perfekt für Tüftler, aber unbrauchbar für jemanden, der Gladys von seinem Telefon aus steuert. Das ist keine akzeptable Lösung auf Dauer.

Die echte Lösung: Eine offizielle Gladys-Umleitungs-URL

Ich werde eine offizielle HTTPS-Umleitungs-URL, gehostet von Gladys, einrichten, nach demselben Prinzip wie Home Assistant mit my.home-assistant.io.

Das Prinzip:

  1. Diese offizielle URL (HTTPS, also von Spotify akzeptiert) gebt ihr in eurer Spotify-Anwendung an, ihr braucht kein Zertifikat oder einen Domainnamen mehr.
  2. Nach eurer Autorisierung leitet Spotify auf diese Seite weiter, die euren Browser einfach zu eurem lokalen Gladys weiterleitet, mit einer Bestätigungsseite, die euch klar anzeigt, auf welche Adresse ihr weitergeleitet werdet.
  3. Eure Instanz beendet den Austausch selbst und speichert die Tokens lokal.

Wichtiger Punkt zum Datenschutz: Diese Seite ist vollständig statisch, ohne Server dahinter. Eure Spotify-Anmeldedaten, eure Zugriffstokens und eure Daten gehen nie über unsere Server, die Seite macht nur eine Weiterleitung in eurem Browser, genau wie Home Assistant.

Weitere Vorteile:

  • Es funktioniert für alle externen Integrationen, die eine OAuth2-Verbindung nutzen, nicht nur für Spotify;
  • kein Gladys Plus oder Abonnement nötig: Es steht für alle zur Verfügung;
  • Für diejenigen, die bereits eine HTTPS-URL haben (Domainname, Reverse Proxy), könnt ihr weiterhin eure eigene nutzen.

Ich kümmere mich um die Umsetzung und komme hier zurück, sobald es verfügbar ist, mit der aktualisierten Dokumentation. In der Zwischenzeit ermöglicht die obige 127.0.0.1-Umgehung das Weiterarbeiten.

Danke, dass ihr das Problem gemeldet habt :slight_smile:

Perfekt.
Danke @pierre-gilles :folded_hands:

Ich sehe, dass dies ein recht häufiges Muster ist, Synology macht das, Freebox macht das :slight_smile:

Claude hat mir einen Vorschlag gemacht:

Die Website wird gerade auf CloudFlare bereitgestellt…

Hop, verfügbar unter https://my.gladysassistant.com/

Jetzt bleibt nur noch eine kleine Anpassung im Code von Gladys :slight_smile:

Top das!
Könnte der Netatmo-Service dann überprüft werden, um diesen Weg zu gehen? Oder die Möglichkeit haben, den Weg wie bei Spotify anzugeben?
Oder habe ich das falsch verstanden? :smiley:

Nein, das ist ein völlig anderes Mechanismus. :slightly_smiling_face:

Hier schlage ich einfach eine Umleitungs-URL vor: alles passiert im Browser. Das dient nur für den OAuth-Fluss, um den Benutzer nach der Authentifizierung zu seiner Instanz umzuleiten. Das ist kostenlos für mich, also selbst wenn wir eines Tages die gleiche Skala wie Home Assistant haben, kann ich es weiterhin ohne Probleme anbieten.

Für Netatmo ist das eine andere Architektur. Die Webhooks laufen über die Server von Gladys Plus, die permanent eine WebSocket-Verbindung zu der lokalen Instanz jedes Benutzers aufrechterhalten, um ihm Ereignisse in Echtzeit zu übermitteln.

Diese Infrastruktur hat Kosten (Server, persistente Verbindungen, Bandbreite usw.), daher ist das nichts, was ich kostenlos anbieten kann. :slightly_smiling_face:

ach ja ich sehe ich hatte es wohl nicht verstanden XD
Danke für deine Rückmeldung.
Ich werde dein Angebot nochmal genauer anschauen, ob es jetzt, wo bestimmte Plugins kommen, wieder interessanter ist :slight_smile:

Danke! :blush:

Ich finde, dass Gladys Plus im Vergleich zu den angebotenen Diensten sehr erschwinglich bleibt. Und darüber hinaus hilft es auch, ein französisches Open-Source-Projekt zu finanzieren. :wink:

Je größer Gladys Plus wird, desto mehr Zeit kann ich Gladys widmen und euch neue Funktionen, Verbesserungen und eine bessere Kompatibilität mit euren Geräten anbieten.

Am Ende profitiert jeder davon. :grinning_face_with_smiling_eyes:

Der PR:

Das wird auch für Daikin nützlich sein :slight_smile:

PR gemerged, die Weiterleitungen über my.gladysassistant.com werden in der nächsten Gladys-Release verfügbar sein :slight_smile:

Das ist für alle externen Integrationen verfügbar, die Oauth verwenden, ohne dass Änderungen auf Seiten der externen Integration erforderlich sind!

Hallo zusammen,

Kurze Rückmeldung zur Spotify-Integration. Ich habe die von @pierre-gilles angegebene Adresse eingegeben und dachte, es funktioniert. Ich landete auf der Spotify-Anmeldeseite, gab alle geforderten Daten ein (E-Mail-Adresse und Sicherheitscode, den ich per E-Mail erhalten habe) und ZACK, zurück auf derselben Seite mit einer Fehlermeldung.

Vielleicht war ich zu ungeduldig und das neue Update ist noch nicht installiert.
Ist das möglich?

Danke

Ja, man muss noch ein bisschen Geduld haben.
Ich werde es vorher von meiner Seite aus testen und sobald es okay ist, werde ich dich benachrichtigen.

@pierre-gilles, ich bestätige dir, dass der https-Link sehr gut funktioniert.

@l.dolle, wenn das Update veröffentlicht wird:

Die https-Seite wird sich dann öffnen und du kannst bestätigen. Das Konto ist verbunden

Du kannst überprüfen, ob du möchtest, dass eines deiner Geräte mit Spotify geöffnet wird, mit der Aktion Verbindung testen

Toll, danke, dass du es getestet hast! Ich mache heute Abend ein Release!

Es ist live in der 4.84.4:

Hallo zusammen,

Es funktioniert.

Ich habe es gerade schnell getestet und hier sind meine Anmerkungen.

Das Plugin ist schnell, wenn man ein Lied stoppt oder wechselt, reagiert das Gerät schnell, aber wenn man die Musik (z. B.) mit dem Telefon (immerhin) stoppt, reagiert das Plugin mit einer gewissen Latenz von drei Sekunden. Das ist vielleicht normal, aber ich wollte diese Info weitergeben, falls es wichtig oder verbesserungswürdig ist.

Danke an @Will_71

Gute Nacht.