[PYTHON] Erstellen Sie eine Anwendung mit der Spotify-API

Einführung

Ich denke, dass das Abonnement-Modellsystem dazu neigt, reichlich Daten zu haben (verwenden Sie es, weil es unbegrenzt ist). In meinem Fall höre ich in letzter Zeit so viel Musik, dass ich dachte, es wäre interessant, die Spotify-API zu verwenden.

Lassen Sie uns dieses Mal eine Anwendung mit der Spotify-API erstellen.

Registrieren wir die Anwendung

https://developer.spotify.com/dashboard/

Sie können sich hier registrieren. Wenn Sie bereits ein Konto haben, melden Sie sich an und Sie können loslegen.

Sie werden bei der Registrierung gefragt, ob Sie es für kommerzielle Zwecke verwenden möchten. Antworten Sie daher richtig. Nach dem Erstellen der Anwendung können Sie die OAuth-Informationen unter "EDIT SETTINGS" eingeben. Es gibt verschiedene Optionen, z. B. das Web und Smartphones. Registrieren Sie diejenige, die zu Ihnen passt.

Wie später beschrieben wird, wird eine geeignete URL festgelegt, da dies nicht ausschließlich vom Webdienst getroffen wird.

Machen Sie um Authentifizierung

https://developer.spotify.com/documentation/general/guides/authorization-guide/

Details sind oben beschrieben. Dieses Mal werden wir es als Webanwendung erstellen, aber in Wirklichkeit wird es über "Google Cloud-Funktionen" ausgeführt, sodass ein Aktualisierungstoken erforderlich ist. Gemäß den Spotify-Spezifikationen bleibt das Zugriffstoken eine Stunde lang gültig, und das Aktualisierungstoken bleibt gültig, bis etwas deaktiviert wird. Erstellen Sie dieses Mal vor dem Erstellen der Anwendung ein Aktualisierungstoken von Hand und konvertieren Sie es im Code in ein Zugriffstoken -> klicken Sie auf die Spotify-API.

1. Code abrufen

Generieren Sie zunächst eine URL, um den Code abzurufen. Ich werde die Details weglassen, aber die endgültige URL lautet wie folgt. Ordnen Sie client_id und redirect_uri Ihrer Umgebung zu.

Außerdem hat die Spotify-API einen sehr fein unterteilten Bereich. Es ist unten aufgeführt, daher müssen Sie den erforderlichen Bereich angeben. https://developer.spotify.com/documentation/general/guides/scopes/

https://accounts.spotify.com/authorize?client_id=${CLIENT_ID}&response_type=code&redirect_uri=${REDIRECT_URL}&scope=user-read-private%20user-read-email&state=34fFs29kd09

Wenn es fertig ist, fügen Sie es in einen geeigneten Browser ein und drücken Sie die Eingabetaste, um zum eingestellten redirect_uri zurückzukehren. Es gibt kein besonderes Problem, wenn hier ein Fehler auftritt. Da sich die URL selbst geändert hat, verwenden wir als Nächstes nur den Codeteil dieser URL.

2. Holen Sie sich das Aktualisierungstoken

Als nächstes muss ich POST werfen. Also werde ich es mit Locken werfen. Legen Sie insbesondere den Code fest, der den folgenden Befehl und client_id und client_secret entsprechend der Umgebung verwendet hat, und geben Sie ihn aus. Wenn es kein Problem gibt, wird das Token zurückgegeben. Behalten Sie also das Aktualisierungstoken bei.

curl --data "code=${CODE}" --data "client_id=${CLIENT_ID}" --data "client_secret=${CLIENT_SECRET}" --data "redirect_uri=http://localhost/callback" --data "grant_type=authorization_code" https://accounts.spotify.com/api/token

from Refresh Token to Access Token Die Konvertierung vom Aktualisierungstoken zum Zugriffstoken erfolgt einmalig durch Drücken der API. In diesem Fall müssen Sie "Authorization: Basic " in den Header aufnehmen, und das Erstellen ist leicht zu finden.

Vorerst werde ich den von mir erstellten Python-Code einfügen.

from dotenv import load_dotenv

import os
import requests
import base64
import json

load_dotenv(verbose=True)

client_id = os.environ.get("SPOTIFY_CLIENT_ID", default="")
client_secret = os.environ.get("SPOTIFY_CLIENT_SECRET", default="")
token = base64.b64encode((client_id + ":" + client_secret).encode("utf-8")).decode(
    "utf-8"
)

headers = {"Authorization": "Basic " + token}
data = {
    "refresh_token": os.environ.get("REFRESH_TOKEN"),
    "grant_type": "refresh_token",
}
response = requests.post(
    "https://accounts.spotify.com/api/token", data=data, headers=headers
)  # noqa: E501
print(json.loads(response.text)["access_token"])

Erstellen Sie das Teil, um die API aufzurufen

Um einen API-Aufruf zu tätigen, setzen Sie einfach das Zugriffstoken, das Sie erhalten haben, auf Bearer und werfen Sie es. Unten finden Sie einen Beispielcode für die Generierung von Ranking-Daten, die ich erstellen möchte.

    header = {"Authorization": "Bearer " + access_token}
    data = {
        "limit": 50,
        "time_range": "short_term",
    }
    response = requests.get(
        "https://api.spotify.com/v1/me/top/tracks", params=data, headers=header
    )

Am Ende

Jetzt können Sie mithilfe der Spotify-API sicher eine Anwendung erstellen. Während Spotify schwer zu verstehen ist, wo und was sich befindet, sind die API-Spezifikationen detailliert beschrieben. Es gibt überraschend viele Dinge, die getan werden können, so dass der Eindruck entsteht, dass es als gutes Beispiel als Ausgangspunkt für die API-Erstellung verwendet werden kann.

Übrigens mache ich jetzt die Ranglisten, die ich im Vormonat gehört habe, einmal im Monat auf Twitter. Ich habe den Post-Teil noch nicht gemacht, also werde ich ihn von nun an machen.

Das Verfahren zum Erstellen von Hand ist für andere OAuth-APIs dasselbe, sodass es effektiv angewendet werden kann. Bitte versuchen Sie, verschiedene Anwendungen zu erstellen, indem Sie auf verschiedene APIs klicken. Wenn Sie es jedoch veröffentlichen, wird das API-Limit sofort überschritten. In diesem Fall sollten Sie den Authentifizierungsteil ordnungsgemäß ausführen, damit er mit der Benutzeroberfläche ausgeführt werden kann.

Recommended Posts

Erstellen Sie eine Anwendung mit der Spotify-API
Erstellen Sie eine Anwendung, die nur mit der Google Custom Search-API mit Python 3.3.1 in Bottle sucht
Versuchen Sie es mit der Twitter-API
Erstellen Sie mithilfe der Gesetzes-API ein einfach zu lesendes PDF mit Gesetzen und Regierungsverordnungen
Versuchen Sie es mit der Twitter-API
Erstellen Sie mithilfe der COTOHA-API eine App, die gut mit Berichten von Personen funktioniert
Versuchen Sie es mit der PeeringDB 2.0-API
Erstellen Sie mithilfe der Twitter-Streaming-API einen Echtzeit-Bot für die automatische Antwort
Ich habe einen Original-Programmführer mit der NHK-Programmführer-API erstellt.
Erstellen Sie eine API mit hug mit mod_wsgi
Erstellen Sie die CRUD-API mit der Fast API
Ich habe versucht, die checkio-API zu verwenden
Ich habe mit Lambda eine App erstellt, die LINE über die Qiita-API über "Likes" informiert.
Erstellen Sie mit turicreate eine API, die Daten aus einem Modell zurückgibt
Erstellen Sie mit der AWS-API einen Alias für Route53 zu CloudFront
Erstellen Sie eine Anwendung, indem Sie mit Pygame klassifizieren
Versuchen Sie es mit der Wunderlist-API in Python
Versuchen Sie es mit dem Webanwendungsframework Flask
Versuchen Sie, die Kraken-API mit Python zu verwenden
Tweet mit der Twitter-API in Python
Erstellen Sie mit dem Sympy-Modul ein Diagramm
[Python] Erstellen Sie schnell eine API mit Flask
Spielen Sie mit Dajare mithilfe der COTOHA-API
Versuchen Sie, die Spotify-API in Django zu aktivieren.
Zeichnen Sie benutzerdefinierte Ereignisse mit der Shotgun-API auf
Ich habe versucht, die BigQuery-Speicher-API zu verwenden
So erstellen Sie eine Anwendung aus der Cloud mithilfe des Django-Webframeworks
[Hyperledger Iroha] Erstellen Sie ein Konto mit der Python-Bibliothek
Ich habe in der Bibliothek nach der Verwendung der Gracenote-API gesucht
Rufen Sie die Web-API mit Anfragen auf. Beispiel: Flickr
Versuchen Sie es mit der BitFlyer Ligntning API in Python
Erstellen Sie eine REST-API mit dem in Lobe und TensorFlow Serving erlernten Modell.
Erstellen Sie einfach einen API-Server mit dem Modul go-json-rest
Erstellen wir eine REST-API mit SpringBoot + MongoDB
Ich habe versucht, die Google Cloud Vision-API zu verwenden
Erstellen einer interaktiven Anwendung mithilfe eines Themenmodells
Holen Sie sich ein Zugriffstoken für die Pocket-API
Versuchen Sie, mit Node.js einen HTTP-Server zu erstellen
So senden Sie automatisch E-Mails mit Anhängen mithilfe der Google Mail-API in Python
Erstellen Sie einen Filter, um ein Zugriffstoken mit der Graph-API (Flask) zu erhalten.
Erstellen Sie schnell einen API-Server mit Python + Falcon
Versuchen Sie, die DropBox Core-API mit Python zu verwenden
Erstellen Sie eine GUI auf dem Terminal mit Flüchen
Verwenden Sie die Spotify-API, um alle Songs von Arashis Songinformationen abzurufen und den Index zu überprüfen
[CRUD] [Django] Erstellen Sie eine CRUD-Site mit dem Python-Framework Django ~ 1 ~
Grundeinstellungen bei Verwendung der foursquare-API mit Python
Senden und empfangen Sie Google Mail über die Google Mail-API mit Python
Erstellen Sie eine Tweet-Heatmap mit der Google Maps-API
Posten Sie mit der API auf Twitter in Ihrem Konto
Erstellen Sie mit GitHub Pages einen Pseudo-REST-API-Server
Ich habe versucht, die API von Sakenowa Data Project zu verwenden
[CRUD] [Django] Erstellen Sie eine CRUD-Site mit dem Python-Framework Django ~ 2 ~
Verwenden Sie die Such-API der National Parliament Library in Python
[CRUD] [Django] Erstellen Sie eine CRUD-Site mit dem Python-Framework Django ~ 3 ~
[CRUD] [Django] Erstellen Sie eine CRUD-Site mit dem Python-Framework Django ~ 4 ~
[CRUD] [Django] Erstellen Sie eine CRUD-Site mit dem Python-Framework Django ~ 5 ~
Durchsuchen Sie die Tabelle mit sqlalchemy und erstellen Sie ein Wörterbuch