Patrick Katz
Patrick Katz

Reputation: 43

How to add Spotify Token to Search artist's track

Trying to search an artist's track through spotify web api. However Spotify has updated its api and now needs a Token to access this. I have to token but could not find anything of how to use this via Alamofire. Here is the code. Any help would be greatly appreciated, or being pointed in the right direction.

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.
    }
}

Upvotes: 0

Views: 371

Answers (1)

Ahmet Sina Ustem
Ahmet Sina Ustem

Reputation: 1090

You can set access token in headers like that.For detailed information and examples you can look at offical reference. By the way possible duplicate of this question

   let headers = [
    "Authorization": "Bearer {your access token}"
]

AF.request(.GET, searchURL, headers: headers)
         .responseJSON { response in
             debugPrint(response)
         }

Upvotes: 2

Related Questions