我一直在使用Spotify API查询给定艺术家的精确曲目,发出如下GET请求:
https://api.spotify.com/v1/search?q=track:"track+title"+artist:"artist+name"&type=track
(使用授权标题 Bearer [access_token] )
这在大多数情况下都是预期的,但对于一首曲目我遇到了问题:我正在尝试找到曲目I Might Just Stay Home, with Shannon Lyon。
我之前成功的GET请求调整为跟踪标题和艺术家,这应该是它的样子:
https://api.spotify.com/v1/search?q=track:"I+Might+Just+Stay+Home"+artist:"Shannon+Lyon"&type=track
然而,这会产生零结果。这真是奇怪:如果我将完全相同的搜索查询(轨道:“I + Might + Just + Stay + Home”+艺术家:“Shannon + Lyon”)复制到{{3我得到了我期待的一个搜索结果。我也可以在Spotify桌面播放器中使用相同的查询,给我一个结果。
所以,问题是:为什么我没有从API中获得结果的原因是什么,而我使用完全相同的查询在Web和桌面客户端得到结果?
答案 0 :(得分:2)
Potray已经给出了一个可能的原因。您在客户端看到的东西来自内部API。它们与公共Web API略有不同。
另一个更可能的原因是不同国家/地区的可用性不同,而且您的两个查询针对不同的国家/地区,但您可能没有意识到这一点。
在客户端中搜索时,始终是搜索的用户。用户已连接到某个国家/地区。您只能播放您所在国家/地区的可用内容,因此在客户端中搜索只会返回您可以播放的内容。
使用Web API进行搜索时,您无需指定Spotify用户正在搜索的内容。您也不需要指定要搜索结果的国家/地区。
从一开始,未指定国家/地区,搜索结果将列出至少在一个国家/地区可用的曲目。自去年以来,由于一个错误,它默认为美国。您可以更改国家/地区,但不能再在所有国家/地区进行搜索。