Spotify полностью изменил способ потоковой передачи музыки благодаря каталогу, содержащему миллионы песен, альбомов и плейлистов.
Используя его веб-API, вы можете сделать свои возможности Spotify еще более увлекательными, создав собственное приложение для поиска музыки React. API предоставляет доступ к целому ряду музыкальных данных, которые можно использовать для создания пользовательского музыкального приложения и персонализации его по своему вкусу.
Spotify для разработчиков
Spotify предлагает широкий спектр функций потоковой передачи музыки, таких как поиск, воспроизведение в автономном режиме и персональные рекомендации. Платформа Spotify для разработчиков предоставляет доступ к API и SDK, поддерживающим эти функции. В этом руководстве вы изучите веб-API и узнаете, как интегрировать его в свое приложение React для поиска песен, которые вам нравятся.
Зарегистрируйте аккаунт
Для начала вам необходимо иметь учетную запись Spotify. Если у вас его еще нет, посетите страница регистрации Spotify. Однако, если он у вас уже есть, войдите в Spotify для разработчиков консоль.
Зарегистрируйте свое приложение
После входа в консоль разработчика зарегистрируйте свое приложение, чтобы получить доступ к веб-API. На странице панели инструментов нажмите кнопку Создать приложение кнопку, введите имя и описание и, наконец, примите условия для создания приложения.
Наконец, нажмите на Изменить настройки кнопку, чтобы перейти к настройкам URL-адреса перенаправления. Поскольку ваше приложение все еще находится в режиме разработки, добавьте http://localhost: 3000 в качестве URL-адреса перенаправления. Это URL-адрес, на который вы хотите перенаправить пользователя после его аутентификации в Spotify.
После регистрации вашего приложения Spotify предоставит ваш уникальный идентификатор клиента и секреты клиента, которые вы можете использовать для:
- Добавьте поток аутентификации Spotify, чтобы войти в систему с вашими учетными данными Spotify в вашем приложении React.
- Получите свой уникальный токен доступа, чтобы отправлять запросы к различным конечным точкам веб-API, включая поиск данных, таких как треки или альбомы.
Настройте клиент React
Создать React-приложение и перейдите в корневой каталог и создайте новый файл, .env, чтобы установить некоторые переменные среды. Вы можете получить свой идентификатор клиента на панели разработчика Spotify.
REACT_APP_SPOTIFY_CLIENT_ID = "ваш идентификатор клиента"
REACT_APP_SPOTIFY_REDIRECT_URI = " http://localhost: 3000"
REACT_APP_SPOTIFY_AUTH_ENDPOINT = " https://accounts.spotify.com/authorize"
REACT_APP_SPOTIFY_RESPONSE_TYPE = "жетон"
Вы можете найти код этого приложения в его Репозиторий GitHub.
Установите необходимые пакеты
Установите Аксиос. Вы будете использовать его методы для выполнения HTTP-запросов к веб-API Spotify.
npm установить аксиомы
Добавить рабочий процесс аутентификации Spotify
Spotify указывает, что все запросы к любой конечной точке веб-API имеют действительный токен доступа в заголовке запроса. Чтобы получить токен доступа, ваше приложение должно сначала пройти аутентификацию в Spotify.
Spotify поддерживает несколько аутентификация и авторизациятакие методы, как код авторизации, учетные данные клиента или неявные методы предоставления.
Проще всего реализовать метод неявного предоставления, который требует, чтобы приложение делало запросы к конечной точке аутентификации (вы добавили это в файл ENV), передавая ваш идентификатор клиента. После успешной аутентификации Spotify ответит, предоставив токен доступа, срок действия которого истекает через указанный период.
Откройте файл src/App.js, удалите шаблонный код React и добавьте следующий код:
Импортировать Реагировать, {useState, useEffect} от«реагировать»;
Импортировать Искатель от'./компоненты/Поиск';функцияПриложение() {
константа CLIENT_ID=process.env. REACT_APP_SPOTIFY_CLIENT_ID
константа REDIRECT_URI =process.env. REACT_APP_SPOTIFY_REDIRECT_URI
константа AUTH_ENDPOINT =process.env. REACT_APP_SPOTIFY_AUTH_ENDPOINT
константа RESPONSE_TYPE = процесс.env. REACT_APP_SPOTIFY_RESPONSE_TYPEконстанта [токен, setToken] = useState("");
использоватьЭффект(() => {
константа хэш = окно.местоположение.хэш;
позволять жетон = окно.localStorage.getItem("жетон");
если (решетка && решетка) {
токен = хэш.подстрока (1).расколоть("&").находить(элемент => элемент.стартс("access_token")).расколоть("=")[1];
окно.location.хэш = "";
окно.localStorage.setItem("жетон", токен);
}setToken (токен)
}, [])константа выход = () => {
установитьТокен("");
окно.localStorage.removeItem("жетон");
}возвращаться (
"Приложение">"Заголовок приложения"> "Поискконтейнер">Поиск</h2>
{! токен?
экспортпо умолчанию Приложение;
Давайте разберем это:
- Этот компонент условно отображает компонент поиска и кнопку выхода, если токен доступа присутствует в противном случае, он отображает div со ссылкой, которая направляет пользователя к авторизации Spotify страница. Ссылка содержит параметры запроса, которые указывают значения CLIENT_ID, REDIRECT_URI и RESPONSE_TYPE.
- После аутентификации пользователя вызовите хук useEffect, чтобы запустить блок кода при монтировании компонента. Этот блок кода извлекает токен доступа из хэша URL-адреса и устанавливает его в качестве нового значения переменной состояния токена. Он также сохраняет токен в локальном хранилище для сохранения состояния аутентификации.
- С токеном доступа, хранящимся в состоянии, он передается в качестве реквизита компоненту Searcher для выполнения запросов к веб-API Spotify.
- Чтобы выйти из системы, код просто удаляет токен доступа из локального хранилища и устанавливает состояние токена в пустую строку.
Внедрение функции поиска и рендеринга результатов
В каталоге /src создайте новую папку и назовите ее компоненты. Внутри этой папки создайте новый файл: Searcher.js и добавьте приведенный ниже код.
Импортировать Реагировать, {useState, useEffect} от«реагировать»
Импортировать аксиомы отаксиос;функцияИскатель(реквизит) {
константа [searchKey, setSearchKey] = useState("")
константа [треки, setTracks] = useState([])
константа access_token = реквизит.токен
константа поискИсполнитель = асинхронный () => {
константа {данные} = Ждите аксиос.получить(" https://api.spotify.com/v1/search", {
заголовки: {
'Тип содержимого': "приложение/json",
«Авторизация»: `Предъявитель ${токен_доступа}`
},
параметры: {
q: поискКлюч,
тип: "художник"
}
})
вар ID художника = data.artists.items[0].идентификаторвар ArtistTracks = Ждите аксиос.получить(` https://api.spotify.com/v1/artists/${ID исполнителя}/top-tracks`, {
заголовки: {
Авторизация: `Предъявитель ${токен_доступа}`
},
параметры: {
лимит: 10,
рынок: 'НАС'
}
})setTracks(artistTracks.data.tracks);
}возвращаться (
<>"Форма поиска">
имя_класса ="Имя"
тип="текст"
заполнитель ="Поиск по имени исполнителя..."
onChange={(e) => {setSearchKey (e.target.value)}}
/>
экспортпо умолчанию Искатель
Давайте разберем это:
- Компонент определяет константу access_token, которую он устанавливает для свойства токена, переданного в качестве реквизита. Позже он передает этот токен в заголовке запроса API конечной точке API поиска Spotify.
- Определите два состояния: searchKey и tracks. Состояние searchKey содержит текущее значение ввода поиска. Состояние треков содержит массив из 10 лучших треков исполнителя, которые будут возвращены при поиске Spotify.
- Функция searchArtist делает запрос GET к API Spotify для поиска данных исполнителей на основе значения searchKey.
- Затем он извлекает идентификатор исполнителя из данных ответа и делает еще один запрос GET, чтобы получить лучшие треки для этого исполнителя. Из данных ответа он извлекает 10 лучших треков и устанавливает переменную треков.
- Компонент возвращает поле ввода и кнопку поиска. Когда пользователь нажимает кнопку поиска, он вызывает функцию searchArtist для получения и отображения лучших треков для определенного исполнителя. Наконец, он использует функцию карты для отображения пяти верхних дорожек в массиве дорожек в виде списка.
Запустите сервер разработки, чтобы обновить изменения, затем перейдите к http://localhost: 3000 в браузере для просмотра результатов.
Настройте свое приложение с помощью функций Spotify
В этом руководстве описаны шаги, необходимые для выполнения запросов к веб-API Spotify для поиска музыкальных данных исполнителей. Однако вы можете сделать больше с функциями Spotify, предоставляемыми его SDK и API, такими как интеграция его веб-плеера воспроизведения с тем же внешним видом, что и в Spotify.
Преимущество SDK и API Spotify заключается в том, что они многофункциональны и их можно легко интегрировать в любое веб-приложение или мобильное приложение.