如何通过Client Credentials Flow接收使用Alamofire进行播放的access_token
到目前为止,我的代码如下:
// Spotify API
func callAlamo(url: String) {
let parameters = ["client_id" : "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"client_secret" : "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy",
"grant_type" : "client_credentials"]
let headers = ["Authorization" : "Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"] // <- xxx is the client_id
Alamofire.request("https://accounts.spotify.com/api/token", method: .post, parameters: parameters, headers: headers).responseJSON(completionHandler: {
response in
print(response.result)
print(response.result.value)
})
}
以下是我的打印日志的一部分:
成功
可选({ error = "invalid_client";})
这段代码有什么问题?我是否发送了错误的参数或标头?我是不是忘了什么?
注意: client_id
和client_secret
是正确的
-如果有任何不清楚的地方,请给我留言-
发布于 2018-06-25 04:48:04
经过几天和两个问题之后,我自己想明白了。这是一个非常简单的修复,这是令人沮丧的。
我所做的只是删除请求中的headers
参数。
另一种选择是,您可以将headers
设置为nil
。
Alamofire.request("https://accounts.spotify.com/api/token", method: .post, parameters: parameters).responseJSON(completionHandler: {
response in
print(response.result)
print(response.result.value)
})
发布于 2018-06-25 17:32:43
我不知道这是怎么回事。从理论上讲,正确的执行是:-向url:https://accounts.spotify.com/api/token发出POST请求
例如:
{
"access_token": "BQCJeyp3ocQZzSksvNn3IXuvY0NsYI26YMF400jp-7Dd8zGz6ecXyywwmSdy4jrPWwLZA_6l4e59lu8dYfg",
"token_type": "Bearer",
"expires_in": 3600,
"scope": ""
}
https://stackoverflow.com/questions/51009037
复制相似问题