Je pense que le système de modèle d'abonnement a tendance à avoir des données abondantes (utilisez-le car il est illimité). Dans mon cas, j'écoute tellement de musique ces derniers temps que j'ai pensé qu'il serait intéressant d'utiliser l'API Spotify.
Donc, cette fois, créons une application à l'aide de l'API Spotify.
https://developer.spotify.com/dashboard/
Vous pouvez vous inscrire ici. Si vous avez déjà un compte, connectez-vous et vous êtes prêt à partir.
Il vous sera demandé si vous souhaitez l'utiliser à des fins commerciales lors de l'inscription, alors répondez correctement. Après avoir créé l'application, vous pouvez saisir les informations OAuth depuis ʻEDIT SETTINGS`. Il existe différentes options, telles que le Web et les smartphones. Enregistrez celui qui vous convient.
Comme cela sera décrit plus tard cette fois, puisqu'il n'est pas strictement frappé par le service Web, une URL appropriée est définie.
https://developer.spotify.com/documentation/general/guides/authorization-guide/
Les détails sont décrits ci-dessus.
Cette fois, nous la créerons en tant qu'application Web, mais en réalité, elle sera exécutée à partir de Google Cloud Functions
, donc un jeton de rafraîchissement est requis.
Selon les spécifications de Spotify, le jeton d'accès restera valide pendant une heure et le jeton d'actualisation restera valide jusqu'à ce que quelque chose soit désactivé.
Donc, cette fois, avant de créer l'application, créez un jeton d'actualisation à la main, convertissez-le en jeton d'accès dans le code-> appuyez sur l'API Spotify.
Tout d'abord, générez une URL pour obtenir le code. Je vais omettre les détails, mais l'URL finale sera la suivante. Faites correspondre client_id et redirect_uri à votre environnement.
En outre, l'API Spotify a une portée très finement divisée. Il est répertorié ci-dessous, vous devez donc spécifier la portée requise. 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
Lorsqu'il est terminé, collez-le dans un navigateur approprié et appuyez sur Entrée pour revenir à l'ensemble redirect_uri. Il n'y a pas de problème particulier si une erreur se produit ici. Puisque l'URL elle-même a changé, nous n'utiliserons que la partie de code de cette URL ensuite.
Ensuite, je dois lancer POST. Alors je vais le lancer avec une boucle. Plus précisément, définissez le code qui a pris la commande suivante et client_id et client_secret en fonction de l'environnement et lancez-le. S'il n'y a pas de problème, le jeton sera retourné, alors conservez le jeton d'actualisation.
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
La conversion du jeton d'actualisation en jeton d'accès est un one-shot en frappant l'API.
Dans ce cas, vous devez inclure ʻAuthorization: Basic
Pour le moment, je vais coller le code python que j'ai créé.
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"])
Pour passer un appel API, définissez simplement le jeton d'accès que vous avez obtenu sur Bearer et lancez-le. Vous trouverez ci-dessous un exemple de code pour la génération de données de classement que j'essaie de créer.
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
)
Vous pouvez désormais créer une application en toute sécurité à l'aide de l'API Spotify. Bien que Spotify soit difficile à comprendre où et ce que c'est, les spécifications de l'API sont écrites en détail. Il y a étonnamment beaucoup de choses à faire, c'est donc une impression que cela peut être utilisé comme un bon échantillon comme point de départ pour la création d'API.
Au fait, ce que je fais maintenant, c'est de publier les classements que j'ai entendus le mois précédent sur Twitter une fois par mois. Je n'ai pas encore fait la partie post, donc je vais le faire à partir de maintenant.
La procédure de fabrication manuelle est la même pour les autres API OAuth, elle peut donc être appliquée efficacement. Veuillez essayer de créer diverses applications en accédant à diverses API. Cependant, si vous le publiez, la limite de l'API sera immédiatement dépassée, donc dans ce cas, faisons correctement la partie authentification afin que cela puisse être fait avec l'interface utilisateur.
Recommended Posts