按名称搜索艺术家ID

时间:2018-01-08 16:20:50

标签: javascript spotify

我正在钻研spotify并且javascript不是我的主要编程语言所以我设法从使用ajax的代码(我宁愿不使用)得到一些片段,但它仍然没有返回所以我想知道是否还有一些有经验的人可以帮助我开始使用模板来调用api。

此测试的目标是搜索艺术家姓名并获得第一个结果(我希望很多名字会返回多位艺术家)

文档中的大部分内容都是curl,我没有发现演示非常有用。

到目前为止我所拥有的是这样的:

function getArtistName (artistName) {
    var artistID;
    var searchArtists = function (query) {
        $.ajax({
            url: 'https://api.spotify.com/v1/search',
            data: {
                q: query,
                type: 'artist',
                'accessToken': 'BQBvW70gHJ20Flc8cHErqg8s72bfTePbssblED-gpEuHFr_Yezesbthok8qaKBmjzo2WjWo9J7ZcTpSwvV8MZ_cW_E7UkrG_HF2R6gFQcqfdupgYGmoYsdRdt1q3tq2NU3pPgauuzmFLkUpdAuNp3shdVXJz2SzvnA',
                'query': artistName,
                limit: '1.'
            },
            success: function (response) {
                //resultsPlaceholder.innerHTML = template(response);
            }
        });
    };
      console.log(searchArtists);

      return artistID;
    }

有些混乱点:

  1. 密钥似乎已过期。我的个人资料中有我的个人资料,但除了网站上的“试用”演示之外,我不确定在哪里可以生成此令牌。

  2. 这实际上返回什么,ID或JSON?

1 个答案:

答案 0 :(得分:1)

这是一个使用Node.js或服务器端Javascript搜索曲目的演示应用:https://spotify-quicksearch.glitch.me/

如果您点击页面上的“在Glitch上重新混音”链接,您可以查看和编辑来源。

对API的调用是在server.js中进行的。首先,我们设置客户端ID和客户端密码,这些都来自仪表板,如您所述。在此示例中,我们使用这些来使用客户端凭据流获取访问令牌。您可以在此处阅读有关所有身份验证流程的信息:https://beta.developer.spotify.com/documentation/general/guides/authorization-guide/

此特定示例使用名为spotify-web-api-node的API包装器,这使得通过Javascript函数更轻松地与API进行交互。要搜索艺术家,只需将searchTracks更改为searchArtists

要回答您的第二个问题 - 所有对Spotify API的调用都会返回JSON。您可以在此处查看完整JSON响应的格式:https://beta.developer.spotify.com/documentation/web-api/reference/search/search/。粗略地说,它看起来像这样:

artists: {
  items: [
    {
      id: <id>,
      name: <name>,
      ...
    }
    ...
  ]
}

要从JSON获取ID,您需要解析JSON对象。您可以在client.js的第21行的示例中看到我如何执行此操作。您可以修改该代码以获得第一位艺术家的ID,如下所示:

data.artists.items[0].id

更新:做了一个应该更具相关性的例子:

<强> https://spotify-search-artist.glitch.me/