带有播放按钮和/或元数据 API (Spotify) 的现场演示
Posted
技术标签:
【中文标题】带有播放按钮和/或元数据 API (Spotify) 的现场演示【英文标题】:Live demos with the Play Button and / or Metadata API (Spotify) 【发布时间】:2013-12-05 01:55:06 【问题描述】:播放按钮和/或元数据 API 是否已实现并正常工作? (当然在原生 Spotify 之外)
在这里查看元文档: https://developer.spotify.com/technologies/web-api/search/
我无法创建一个可以看到任何东西的环境;用代码/ API四处探索并尝试。我很想能够创建一个沙盒来查看任何可以在上面工作的东西。但文档似乎几乎不存在。
基本上;我想结合; https://developer.spotify.com/technologies/widgets/spotify-play-button/
使用元搜索。
我知道我可以看到这种语法: http://ws.spotify.com/search/1/track.json?q=artist:foo+fighters
但是如何在它前面进行搜索;然后吐出来?这似乎是一个中间组件,我不确定如何处理。
我只想创建一个搜索栏>>从该搜索栏中您可以输入艺术家>>点击 Spotify >> 并吐出艺术家的播放列表来收听。
稍后我想返回并创建一个过滤器,以仅吐出在特定区域内举办活动或音乐会的艺术家。
【问题讨论】:
【参考方案1】:这个问题不一定与 Spotify 的 Web API 有关,而是使用服务器端脚本从 Web API 检索信息并将结果传递给视图。正如similar question 中的回答,API 不支持CORS 或JSONP。并且由于您can't make XMLHttpRequests to different domains,您必须制作服务器端脚本来向 Web API 发出 HTTP 请求。正如类似的帖子所说,您可以使用多种语言执行此操作,例如php、Python、Java 或 javascript。
JavaScript 解决方案可能是使用 Express webserver 运行 Node,它使用 needle 向 Web API 发出 HTTP 请求,并将该请求的结果传递给浏览器视图。
类似的,
var express = require('express');
var app = express();
var needle = require('needle');
// Handle requests for http://localhost:3000/<some-artist-name>
app.get('/:artistname', function(req, res)
// Make request to Spotify's Web API for some artist name
needle.get('http://ws.spotify.com/search/1/artist?q=artist:' + req.params.artistname, function(error, response, body)
// Most popular artist from search results
var artistURI = body.artists[0];
// Send a Spotify Play Button iframe for the artist URI
res.send("<iframe src='https://embed.spotify.com/?uri=" + artistURI + "' width='300' height='380' frameborder='0' allowtransparency='true'></iframe>");
);
);
app.listen(3000);
请将此视为不恰当详细的伪代码,并且只是将 Node 与这两个特定模块一起使用的示例。你有很多选择。
【讨论】:
以上是关于带有播放按钮和/或元数据 API (Spotify) 的现场演示的主要内容,如果未能解决你的问题,请参考以下文章
Spotify 是不是为其 Spotify“播放按钮”嵌入提供 oEmbed API 端点?
我可以将 Web API 和播放按钮小部件用于第 3 方 Spotify 移动应用程序吗?