Spotify: поиск исполнителя и названия одновременно

Я новичок в Spotify API. Я пытаюсь понять, как искать художника и название одновременно.

Я использую вызов AJAX как с художником, так и с названием. Если один из них пуст, я могу просто искать другой, но я не могу, кажется, выяснить, как искать художника и название одновременно. Цель этого состоит в том, чтобы сузить результат, чтобы найти конкретную дорожку.

Вот что у меня есть:

header('Content-Type: application/json');

$search_artist = rawurlencode($_POST['search_artist']);
$search_title = rawurlencode($_POST['search_title']);


if($search_artist && !$search_title) {
    //Search for Artist only
    $url = "https://api.spotify.com/v1/search?q=*".$search_artist."*&type=artist";
} else if(!$search_artist && $search_title) {
    //Search for title only
    $url = "https://api.spotify.com/v1/search?q=*".$search_title."*&type=track";
} else if($search_artist && $search_title) {
    //Search for Artist AND Title
    $url = "https://api.spotify.com/v1/search?q=*".$search_artist."*&type=artist&q=*".$search_title."*&type=track";
}

$contents = file_get_contents($url);

echo json_encode($contents);

Как уже упоминалось, если я ищу только художника или только название, он работает просто отлично. Я просто не знаю, как искать оба одновременно, используя API Spotify.

1 ответ

  1. Если я перефразирую ваш вопрос, он звучит так:

    • Если заполнен только search_artist, необходимо найти исполнителя
    • Если заполнен только search_track, вы хотите найти трек
    • Если оба заполнены, вы все равно хотите найти трек

    Тогда тип должен быть просто track.

    В документации также не упоминается, что вы можете иметь Q и параметры типа дважды. https://developer.spotify.com/web-api/search-item/ it does mention you can search for tracks and artist by having them comma-separated, type=track, artist but reading your question this is probably not what you want.

    $url = "https://api.spotify.com/v1/search?q=".$search_artist."+".$search_title."&type=track";