我正在尝试使用 Spotify API 添加Track到用户的库,但收到 400 响应状态。我已经尝试过这个请求,并且由于标头令牌而Alamofire开始出现错误。postCountSpotify
这是代码的一部分:
func spotify_addToLibrary()
{
self.spotify_verifySession(completion:{ success , auth in
if !success
{
return
}
let postString = "ids=[\"\(self.trackid)\"]"
let url: NSURL = NSURL(string: "https://api.spotify.com/v1/me/tracks")!
var request = URLRequest(url: url as URL)
request.cachePolicy = .useProtocolCachePolicy
request.timeoutInterval = 8000
request.addValue("application/x-www-form-urlencoded;charset=UTF-8", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
request.addValue("Bearer \(auth.session.accessToken!)", forHTTPHeaderField: "Authorization")
request.httpMethod = "post"
request.httpBody = postString.data(using: .utf8)
URLSession.shared.dataTask(with: request) {data, response, err in
if err == nil
{
print("Add to Library …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Spotify API 文档页面上的客户端凭据流来授权 Spotify API 请求。这是我使用 fetch API 的 javascript ES6 格式的代码
const response = await fetch('https://accounts.spotify.com/api/token', {
mode: 'no-cors',
method: 'POST',
headers: {
'Authorization': 'Basic Yzg4OWYzMjM5MjI0NGM4MGIyMzIyOTI5ODQ2ZjZmZWQ6MmUzZTM2YTMzMTM5NDM1Mzk3NzM4ZDMxMTg4MzM0Mjc=',
'Content-type': 'application/x-www-form-urlencoded'
},
body: 'grant_type=client_credentials'
});
Run Code Online (Sandbox Code Playgroud)
控制台显示这是一个错误的请求,并且不会返回任何 JSON。
另一件真正让我困惑的事情是,当我使用带有这些标头和正文的 POSTMAN 发送请求时,它返回的正是我想要的(它有效)我不明白这与我正在做的有什么不同...... ?有人可以帮忙吗?
如果这有帮助的话,这里还有 Javascript Jquery Ajax 中邮递员的代码:
var settings = {
"async": true,
"crossDomain": true,
"url": "https://accounts.spotify.com/api/token",
"method": "POST",
"headers": {
"Authorization": "Basic Yzg4OWYzMjM5MjI0NGM4MGIyMzIyOTI5ODQ2ZjZmZWQ6MmUzZTM2YTMzMTM5NDM1Mzk3NzM4ZDMxMTg4MzM0Mjc=",
"Content-Type": "application/x-www-form-urlencoded",
"Cache-Control": "no-cache",
"Postman-Token": "2f93918d-2e8e-4fb0-a168-7e153dd83912"
},
"data": {
"grant_type": "client_credentials"
}
}
$.ajax(settings).done(function (response) {
console.log(response);
}); …Run Code Online (Sandbox Code Playgroud) 搜索是否已有答案:否
\n1. 总结问题
\nSpotify 引入了获取有关播客和节目信息的功能。详细信息请参见此处。
\n我正在使用 Python“requests”包生成请求 URL,以获取 no_of_followers 等指标(我不确定它们是否可用于播客),所以我尝试获取节目的元数据。
\n我用来获取有关节目信息的端点:GET https://api.spotify.com/v1/shows/{id}
headers = {\n "Authorization": f"Bearer {access_token}"\n}\n# endpoint used "https://api.spotify.com/v1/shows/{id}"\n\nlookup_url = "https://api.spotify.com/v1/shows/3IM0lmZxpFAY7CwMuv9H4g" #"The Daily" podcast example\nprint(lookup_url)\n\nr = requests.get(lookup_url, headers=headers)\nprint(r)\nprint(r.status_code)\nprint(r.json())\nRun Code Online (Sandbox Code Playgroud)\n但是我收到以下错误响应:
\nhttps://api.spotify.com/v1/shows/3IM0lmZxpFAY7CwMuv9H4g\n<Response [404]>\n404\n{\'error\': {\'status\': 404, \'message\': \'non existing id\'}}\nRun Code Online (Sandbox Code Playgroud)\n问题在最后
\n2. 描述您\xe2\x80\x99尝试过的内容
\n我尝试使用搜索端点提取类似的信息,在那里,我确实得到了有效的响应。搜索艺术家时信息丰富且符合预期,但我搜索的展览的响应数据似乎缺失。
\n我用来搜索演出/艺术家的端点:GET https://api.spotify.com/v1/search
使用搜索端点查找有关演出/艺术家的信息:
\nheaders = {\n "Authorization": f"Bearer {access_token}"\n}\nendpoint = "https://api.spotify.com/v1/search"\ndata = urlencode({"q":"the daily","type":"show"})\n# data = urlencode({"q":"drake","type":"artist"})\n\nlookup_url = f"{endpoint}?{data}"\nprint(lookup_url)\n\nr = requests.get(lookup_url, …Run Code Online (Sandbox Code Playgroud) 我为此使用了 React,这是我的 App.js
\nimport React, { useEffect } from "react";\nimport './App.css';\nimport { useDataLayerValue } from "./DataLayer";\nimport { getTokenFromResponse } from "./spotify";\n\nimport Login from "./Login";\nimport Player from "./Player";\n\nimport SpotifyWebApi from "spotify-web-api-js";\n\nconst spotify = new SpotifyWebApi();\n\nfunction App() {\n const [{ token }, dispatch] = useDataLayerValue();\n\n useEffect(() => {\n const hash = getTokenFromResponse();\n window.location.hash = "";\n let _token = hash.access_token;\n\n console.log(_token)\n if (_token) {\n spotify.setAccessToken(_token);\n dispatch({\n type: "SET_TOKEN",\n token: _token,\n });\n\n spotify.getMe().then((user) => {\n console.log(user)\n dispatch({\n type: "SET_USER",\n user: user,\n });\n });\n\n …Run Code Online (Sandbox Code Playgroud) 我想在Spotify应用程序中运行Spotify搜索(找到艺术家的曲目,我没有Spotify URI,只有名称).
我没有在App API中找到运行搜索的功能.另一种方法是与ws.spotify.comSpotify的搜索联系,但这些Web服务不支持在Spotify应用程序中使用它们所需的jsonp.
我有什么选择?
我在使教程项目工作时遇到了麻烦.我把它放在homedir/Spotify/Tutorial下
在旁边spotify我输入spotify:app:Tutorial,它问我是否要将它添加到侧栏,我这样做.选择它时,它是一个空白页面.打开检查员我看到:
<html>
<head></head>
<body></body>
</html>
Run Code Online (Sandbox Code Playgroud)
任何线索都错了吗?我正在运行spotify版本0.8.0.952.g.0298b8ce,我有一个开发者帐户.
在此先感谢/埃里克
Spotify是否为Spotify Play按钮提供了一个oembed API端点?
https://developer.spotify.com/technologies/spotify-play-button/
使用桌面版Spotify,可以将本地MP3文件添加到播放列表并播放它们.libspotify也可以吗?
在我的国家,我没有spotify服务,我也没有使用系统的安装权限/权限,但我想从subbreddit上共享的spotify播放列表中提取歌曲名称/艺术家元数据/r/spotify.
例如,用户在/r/spotify http://open.spotify.com/user/1224703396上分享了他的播放列表.现在,一旦您访问上面的页面,它就会要求do you have spotify installed.
那么,是否可以使用spotify API从用户共享播放列表中提取内容,或者是否有任何在线服务可以执行此操作.
我的网站上是否有某种Spotify开发者工具包?开发人员文档建议,为Spotify开发获取工具"就像下载Spotify桌面客户端一样简单".
但是,为了运行Spotify API,我需要使用Spotify运行我的应用程序,这意味着在Spotify客户端中打开它.这也意味着用Firefox之类的东西打开它是不可能的.因此,我的应用程序的唯一视图是Spotify应用程序视图,它不提供调试功能甚至任何编译器级错误处理.如果我搞砸了仍然允许应用程序运行的代码的一小部分,我没有警告也没有错误.此外,每次我对应用程序进行更改时,我都必须重新启动Spotify.
如果我尝试使用像Firefox这样的调试器打开它,调试器将不会超过第一行代码,因为getSpotifyApi(1)在Spotify之外没有任何意义.有什么建议?
spotify ×10
api ×3
javascript ×3
es6-promise ×1
oembed ×1
post ×1
python ×1
python-3.x ×1
reactjs ×1
swift ×1