尝试通过spotify
网络API搜索艺术家的曲目。但是Spotify
已更新其api,现在需要令牌才能访问它。我必须标记,但找不到如何通过Alamofire使用此功能的任何信息。这是代码。任何帮助将不胜感激,或者被指出正确的方向。
class TableViewController: UITableViewController {
var names = [String]()
var searchURL = "https://api.spotify.com/v1/search?q=Odesza&type=track"
typealias JSONStandard = [String : AnyObject]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
callAlamo(url: searchURL)
}
func callAlamo(url : String){
AF.request(url).responseJSON(completionHandler: {
response in
self.parseData(JSONData: response.data!)
})
}
func parseData(JSONData : Data) {
do {
var readableJSON = try JSONSerialization.jsonObject(with: JSONData, options: .mutableContainers) as! JSONStandard
print(readableJSON)
if let tracks = readableJSON["tracks"] as? JSONStandard{
// print(readableJSON)
if let items = tracks["items"] as? NSArray{
for i in 0..<items.count{
let item = items[i] as! JSONStandard
let name = item["name"] as! String
names.append(name)
self.tableView.reloadData()
}
}
}
}
catch{
print(error)
}
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return names.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell")
cell?.textLabel?.text = names[indexPath.row]
return cell!
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
答案 0 :(得分:2)
您可以在标头中设置访问令牌。有关详细信息和示例,请查看offical reference。顺便提一下this question
let headers = [
"Authorization": "Bearer {your access token}"
]
AF.request(.GET, searchURL, headers: headers)
.responseJSON { response in
debugPrint(response)
}