Spotify API - это мощный ресурс, который позволяет пользователям получать доступ к сокровищнице данных на серверах Spotify. Вы можете извлекать отдельные треки, вы можете детализировать плейлисты или даже данные пользователей! Тем не менее, входной барьер высок по сравнению с другими API, и документация Spotify может быть одной из самых сложных для начинающего разработчика.

Одного взгляда на трудоемкую процедуру авторизации на сайте Spotify для разработчиков достаточно, чтобы убедить меня, что они не хотят, чтобы к их API обращалось слишком много людей:

К счастью, если вам не нужен доступ к данным, связанным с пользователями Spotify, или к плейлистам, вы можете обойти процесс oAuth Spotify. Для моего проекта - клона Spotify для классической музыки - мне нужно было только выполнить поиск в базе данных Spotify с песнями, чтобы я мог встроить их в браузер. К счастью, оказался более простой способ.

Войдите в жемчужину RSpotify - инструмент Ruby, который позволяет выполнять поиск в базе данных Spotify из вашего бэкэнда Ruby. Полную документацию можно найти здесь: https://github.com/guilhermesad/rspotify

Просто добавь:

gem 'rspotify'

в ваш гем-файл, тогда

bundle

После того, как вы установили драгоценный камень, вы можете извлечь данные из Spotify API и использовать эти данные для заполнения своей базы данных. Вот как я использовал гем RSpotify для поиска и засева:

Давайте разберем этот блок. Композиция напоминает мою одноименную модель. Для каждого экземпляра композиции в базе данных Ruby отправит запрос в RSpotify с двумя ключами аутентификации, которые вы можете получить от Spotify с помощью инструментов разработчика:

Я скрыл идентификатор клиента и секрет клиента в своем файле .env и рекомендую вам сделать то же самое. Это тот же метод использования ключей API и другой конфиденциальной информации, которую вы не хотите публиковать на github, где могут воспользоваться злоумышленники.

Гем RSpotify позволяет искать по исполнителю, альбому или треку. Результаты поиска RSpotify вернутся в виде экземпляров Active Record:

Это означает, что для доступа к драгоценному идентификатору Spotify ID - который вам понадобится, если вы хотите встроить песни на свой веб-сайт - требуется метод .instance_variable_get:

После того, как вы получили идентификатор от Spotify и сохранили его в серверной части, вы можете получить его из внешнего интерфейса и динамически интерполировать его во встроенный проигрыватель ‹iframe› Spotify следующим образом:

И с этим вы можете транслировать песни из Spotify в свои собственные приложения. Удивительно, насколько щедрыми приложениями, такими как Spotify, являются их данные, и разработчики поступили бы правильно, если бы ими воспользовались!