Also da muss man vielleicht unterscheiden zwischen Geräten, auf denen ich Spotify installiert und mich dort angemeldet habe:
iPhones (iOS)
Echo Dots 2
FireTV Sticks 4K (Max)
Windows-App
Browser
Und Geräten, die ich regelmäßig aktiv nutze:
Echo Dots 2
iPhones (iOS)
Wie so oft kommen die 503-Fehler bei mir aber, wenn Spotify gerade nirgendwo aktiv genutzt wird.
Ansonsten finde ich in den letzten Tagen einige Fehlermeldungen, wo Spotify gerade auf den Echo Dots 2 lief.
Sind denn eher die Geräte relevant, auf denen die Musik abgespielt wird oder ggf. auch die, die zum Steuern von anderen Geräten genutzt werden?
Es sind Geräte relevant, die Spotify „bereitstellen“. Also wenn die Windows App beispielsweise im Hintergrund läuft, könnte sie den Fehler verursachen, auch wenn sie nicht aktiv genutzt wird.
Wie häufig tritt das denn bei dir auf? Kannst du beispielsweise die Echos mal vom Netz nehmen und schauen ob der Fehler immer noch kommt oder müsstest du da eher ein paar Tage warten?
Puh, das ist ganz unterschiedlich. Mal liegen zwischen den Fehlern einige Minuten, dann wieder mehrere Stunden oder Tage.
Ich schaue mal, ob ich das irgendwie eingrenzen kann. Sind recht viele Echos, die ich vom Netz nehmen müsste und wenn die länger Weg sind, gibt’s Stress mit der Familie.
Gibt es eine Möglichkeit, die Meldungen aus dem Status-Widget per Skript abzufragen? Also nicht nur den Typ, sondern auch den Inhalt? Dann könnte ich mir ne Push-Nachricht senden, wenn der Fehler auftritt. Sonst muss ich ja den ganzen Tag vor der Konsole hängen…
Oder ich muss zum Testen das Modul anpassen, dass ich ne Meldung bekomme. Ist vermutlich einfacher.
Da kommst via UC_GetLastLogMessages($utilControlID, 4); an die Fehlermeldungen des Status-Widget. Ich hoffe du kannst es einschränken Aber ja, ich verstehe, dass das kompliziert sein kann.
Der Body muss quasi an die 3. Position der Parameter
Dann ist mir aufgefallen, dass in der URL das „v1“ entfernt werden sollte… in der Api-Beschreibung
lautet die URL zum Beispiel /v1/me/player/next. Damit es funktioniert muss man das v1 weglassen weil es anscheinend in der Funktion automatisch mitgegeben wird.
So funktioniert es einwandfrei.
SPO_MakeAPIRequest(12345, "POST", "me/player/next", "");
Vielen vielen Dank, jetzt ist das Modul absolut perfekt
MakeAPIRequest und MakeRequest haben leicht unterschiedliche Parameter. MakeRequest ist halt die intern genutzte Funktion, MakeAPIRequest die öffentliche. Dennoch sollte Body der letzte Parameter sein und nicht der zweite. Ich glaube, da hast du die Reihenfolge verdreht. Der Body ist für manche Aufrufe benötigt, beispielsweise Transfer Playback | Spotify for Developers. Wenn der nicht benötigt wird, dann lässt du den String einfach leer.
Und ja, das v1 wird ebenso wie api.spotify.com hinzugefügt, da wir ja nun einmal v1 der API nutzen Das ist auch so dokumentiert. Du sollst ja nicht das Spotify-Modul missbrauchen um irgendwelche ganz anderen Endpunkte abzufragen.
SPO_MakeAPIRequest(28983, "", "POST", "me/player/next");
Warning: file_get_contents(https://api.spotify.com/v1/POST): failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request
in /var/lib/symcon/modules/.store/de.symcon.spotify/Spotify/module.php on line 839
wenn ich den „Body“ an die letzte Position setzte funktioniert es einwandfrei
Ich habe jetzt mal über zwei Monate versucht, die HTTP 503 Fehler einzugrenzen. So richtig gelingt es mir aber nicht. Die kommen weiterhin in schöner Regelmäßigkeit, ohne dass ich irgendwelche Einschränkungen feststellen könnte.
Das einzige was ich sicher sagen kann ist, dass die Fehler häufiger auftreten, wenn die Echo Dots 2 gerade Musik abspielen. Das nur als Ergänzung zu meiner ursprünglichen Frage von Anfang Oktober.
03.01.2023, 09:17:27 | TimerPool | Spotify (UpdateTimer):
Warning: file_get_contents(): php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution in /var/lib/symcon/modules/.store/de.symcon.spotify/Spotify/module.php on line 839
Warning: file_get_contents(https://api.spotify.com/v1/me/player/devices): failed to open stream: php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution in /var/lib/symcon/modules/.store/de.symcon.spotify/Spotify/module.php on line 839
Fatal error: Uncaught TypeError: json_decode() expects parameter 1 to be string, bool given in /var/lib/symcon/modules/.store/de.symcon.spotify/Spotify/module.php:893
Stack trace:
#0 /var/lib/symcon/modules/.store/de.symcon.spotify/Spotify/module.php(893): json_decode(false, true)
#1 /var/lib/symcon/modules/.store/de.symcon.spotify/Spotify/module.php(513): Spotify->UpdateDevices()
#2 /var/lib/symcon/scripts/__generated.inc.php(10655): Spotify->UpdateVariables()
#3 /-(1): SPO_UpdateVariables(35066)
#4 {main}
thrown in /var/lib/symcon/modules/.store/de.symcon.spotify/Spotify/module.php on line 893
Laut einer kurzen Recherche kommt die Fehlermeldung, wenn der Server nicht erreichbar ist. Ist deine Internetverbindung vielleicht instabil? Oder haben andere den Fehler auch? Dann ist vielleicht bei Spotify irgendwas gerade nicht ganz in Ordnung…
Hallo Dr. Niels,
bekomme seit ein paar Tagen einige Fehlermeldungen, Premium Konto vorhanden. Wenn ich die Instanz von Spotify öffnen möchte kommt diese Meldung:
16.01.2023, 10:37:01 | PHP | Error: Warning: file_get_contents(https://api.spotify.com/v1/me/playlists): failed to open stream: HTTP request failed! HTTP/1.0 503 Service Unavailable
Error in Script /var/lib/symcon/modules/.store/de.symcon.spotify/Spotify/module.php on Line 839
137 in IPSLibrary/app/core/IPSLogger/IPSLogger.inc.php (call IPSLogger_Out)
37 in IPSLibrary/app/core/IPSLogger/IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
in IPSLogger_PhpErrorHandler
839 in modules/.store/de.symcon.spotify/Spotify/module.php (call file_get_contents)
149 in modules/.store/de.symcon.spotify/Spotify/module.php (call MakeRequest)
3 in /- (call GetConfigurationForm)
16.01.2023, 10:37:01 | PHP | Error: Error: Uncaught TypeError: json_decode() expects parameter 1 to be string, bool given in /var/lib/symcon/modules/.store/de.symcon.spotify/Spotify/module.php:149
Stack trace:
#0 /var/lib/symcon/modules/.store/de.symcon.spotify/Spotify/module.php(149): json_decode(false, true)
#1 /-(3): Spotify->GetConfigurationForm()
#2 {main}
thrown
Error in Script /var/lib/symcon/modules/.store/de.symcon.spotify/Spotify/module.php on Line 149
137 in IPSLibrary/app/core/IPSLogger/IPSLogger.inc.php (call IPSLogger_Out)
33 in IPSLibrary/app/core/IPSLogger/IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
121 in IPSLibrary/app/core/IPSLogger/IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_PhpErrorHandler)
in IPSLogger_PhpFatalErrorHandler
Habe auch nichts am Account geändert wie PW oder so.
Na toll, das ist natürlich wieder nur bei dir. Bei mir klappt das einwandfrei. 503 ist eigentlich ein Fehler bei Spotify. Hast du irgendwelche neuen Geräte zur Wiedergabe oder dergleichen? Vielleicht macht da was Probleme?
Ich wüsste echt gerne, was den Fehler verursacht damit ich damit irgendwie umgehen kann, aktuell kann ich da aber nicht wirklich etwas anbieten
Ich habe mich heute mittag auf meinem Windows Rechner bei Spotify ab und neu angemeldet und dann ging das wieder bei Symcon. Muss also was mit der An/Abmeldung zu tun haben.
Ich habe erst seit einigen Tagen ein Spotify Duo Account , welchen ich mit meiner Tochter nutze. Ich habe zwei Instanzen angelegt, 1 x ich, 1 x meine Tochter. Den 503 Fehler habe ich auch sehr oft. Auch wenn gerade Musik über Spotify läuft, der Dienst also erreichbar ist.
@loerdy Da die Verbindung mit dem Spotify-Modul über OAuth läuft, kannst du leider nicht mit zwei Konten arbeiten. Dann würden beide Spotify-Instanzen bei der letzten Anmeldung hängen bleiben. Nutzt du Spotify auch auf einem Windows-Rechner? Und kannst du sonst mal wie @Stefan71 ausprobieren dich dort ab- und wieder anzumelden? Und ansonsten kannst du die Anfrage ja auch mal hier testen: Get Available Devices | Spotify for Developers Dann kannst du mal schauen, ob dort auch der 503er kommt oder ob das aus irgendwelchen Gründen nur im Modul passiert.
@Stefan71 Wie der Dialog suggeriert, brauchst du user-read-playback-state.