【问题标题】:Search for artist id by name按名称搜索艺术家 ID
【发布时间】:2018-01-08 16:20:49
【问题描述】:

我正在研究 spotify 并且 javascript 不是我的主要编程语言,所以我设法从使用 ajax 的代码中获得了一些 sn-ps(我宁愿不使用),但它仍然没有返回任何内容,所以我想知道是否一些更有经验的人可以帮助我开始使用模板来调用 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. 密钥似乎已过期。我的个人资料上有一个客户 ID,但除了网站上的“试用”演示之外,我不确定在哪里可以生成此令牌。

  2. 这实际上返回了什么,ID 还是 JSON?

【问题讨论】:

  • 这是javascript,不是java。如果您不想使用 AJAX,您可以在服务器上完成所有操作
  • 如果你想要json,使用$.getJSON或者使用$.ajaxtype(?)属性
  • 对不起,我把它标记为 javascript。我怎样才能在服务器上做到这一点,你有一个有用的例子吗?
  • @badner 现在你把它弄混了。那是另一个与这个无关的问题......
  • 你应该阅读about js's asynchronity

标签: javascript spotify


【解决方案1】:

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

如果您点击页面上的“Remix this on 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/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-11
    • 2020-10-17
    • 1970-01-01
    • 1970-01-01
    • 2018-07-31
    相关资源
    最近更新 更多