0

Ich war eine Weile aus dem Programmierspiel raus und versuche wieder Spaß zu haben. Ich arbeite an einer dummen Chrome-Erweiterung für den Spotify-Webplayer, der überprüft, ob der aktuell wiedergegebene Titel als explizit markiert ist.Neuling - Chrome Extension & Spotify API

Spotify hat zwei Versionen ihres Web-Players. Die neuere Version macht es einfach zu sehen, ob eine Spur explizit ist, aber die ältere Version hat diese Information nicht immer. Ich habe es geschafft, die Track-ID zu extrahieren und die Spotify-API zu verwenden, theoretisch sollte ich in der Lage sein, die Track-Informationen mit etwas wie: https://api.spotify.com/v1/tracks/4ckuS4Nj4FZ7i3Def3Br8W - Ersetzen der ID mit der aktuell spielenden Track-ID. Innerhalb der Daten in der URL wird

"explicit" : true, 

oder

"explicit" : false, 

ich kann nicht herausfinden, gerecht zu sein, wie die Erweiterung zu bekommen, um diese Daten zu packen und zu analysieren. Ich habe versucht, XMLHttpRequest-Funktionen zu verwenden, aber nichts funktioniert, und ich sehe einige Informationen mit domänenübergreifenden Problemen und ich frage mich, ob das ist, was ich in renne, da die Erweiterung auf dem lokalen Rechner und nicht * ist. spotify.com. Aber ich bin mir nicht sicher, ob ich neu bei chrome/js bin.

Antwort

0

Die Daten, die Sie von der API abrufen, sind im JSON-Format, und Sie müssen lediglich die Zeichenfolge, die Sie von der HTTP-Anfrage erhalten haben, mit JSON.parse()link analysieren. Alles, was Sie tun müssen, ist, diese Daten zu analysieren, wodurch sie zu einem JavaScript-Objekt werden. Von dort müssen Sie nur den Boolean mit parsedObject.explicit greifen. Wenn Sie nicht wissen, was JSON oder Objekte hier sind, sind zwei einfache Erklärungen für jeweils (understanding json und understanding objects).

Wenn Ihre HTTP-Anfrage fehlschlägt, liegt dies höchstwahrscheinlich daran, dass Sie die Website Ihrer Erweiterung, die auf permissions im Manifest zugreift, nicht richtig eingerichtet haben. Stellen Sie sicher, dass eine Berechtigung für den Zugriff auf api.spotify.com vorhanden ist und dass Match pattern so eingerichtet ist, dass die Seite, auf die Sie mit Ihrer HTTP-Anfrage zugreifen möchten, auf die weiße Liste gesetzt wird. ("https://api.spotify.com/*" in Ihrem Fall)

+0

Es war die Berechtigungen im Manifest. Vielen Dank! – JB205