按名称搜索艺术家 ID

Search for artist id by name

我正在研究 spotify,javascript 不是我的主要编程语言,所以我设法从使用 ajax(我宁愿不使用)的代码中获取一些片段,但仍然它 return 没什么,所以我想知道是否有一些更有经验的人可以帮助我开始使用模板来调用 api。

我这次测试的目标是搜索艺术家姓名并获得第一个结果(我预计很多名字会 return 多个艺术家)

文档中的大部分内容都是 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. 密钥似乎过期了。我的个人资料上有一个客户端 ID,但我不确定除了网站上的 "try it out" 演示之外,我可以在哪里生成此令牌。

  2. 这实际上是什么return,ID还是JSON?

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

如果您点击页面上的“Remix this on Glitch”link,您可以查看和编辑源代码。

对 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 return 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/