Spotfiy api в Swift - токен авторизации - PullRequest
0 голосов
/ 20 марта 2019

Я пытаюсь создать простой поиск, где пользователь может искать музыку с помощью Spotify.У меня проблема с получением данных из Spotify.Как вы можете видеть ниже, я создал простое приложение, которое должно распечатывать только данные, полученные Spotify, а ниже - то, что печатает консоль.Мне сказали, что аутентификация может быть неправильно настроена, но я пытался это исправить и не нашел никакой документации для ее реализации в xcode.

import UIKit
import Alamofire

class TableViewController: UITableViewController {
    
    var searchURL = "https://api.spotify.com/v1/search?q=tania%20bowra&type=track"
    let headers = ["Authorization": "Bearer{BQDrWHgHBM1wLztdtJowwbRaIs0HSrkBg4ZoNur5qTdf77mBnvWiqdNtlOnDM6lsdIpT1IA9uI0vqIo_7rILYWmGa6EQzm9Wd5YB6NJhKKftW3ZOjCkj_lL1B2s3L0wLVAKcyQiKja0}"]
    
    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){
        /*Alamofire.request(url).responseJSON(completionHandler: {
            response in
            
            self.parseData(JSONData: response.data!)
            
        })*/
        
        Alamofire.request(url, headers: headers).responseJSON {
            response in
            
            debugPrint(response)
            print("*************************")
            print(response.data!)
            
            self.parseData(JSONData: response.data!)
        }
        
    }
    func parseData(JSONData : Data){
        do{
            var readableJSON = try JSONSerialization.jsonObject(with: JSONData, options: .mutableContainers) as? JSONStandard
            print(readableJSON)
        }
        catch{
            print("**************************************")
            print(CFCopyDescription)
        }
    }


}

[Request]: GET https://api.spotify.com/v1/search?q=tania%20bowra&type=track
[Response]: <NSHTTPURLResponse: 0x6000009d8300> { URL: https://api.spotify.com/v1/search?q=tania%20bowra&type=track } { Status Code: 400, Headers {
    "Access-Control-Allow-Origin" =     (
        "*"
    );
    "Content-Encoding" =     (
        gzip
    );
    "Content-Length" =     (
        112
    );
    "Content-Type" =     (
        "application/json",
        "application/json"
    );
    Date =     (
        "Tue, 19 Mar 2019 20:17:46 GMT"
    );
    Via =     (
        "1.1 google"
    );
    "Www-Authenticate" =     (
        "Bearer realm=\"spotify\", error=\"invalid_request\", error_description=\"Only valid bearer authentication supported\""
    );
    "access-control-allow-credentials" =     (
        true
    );
    "access-control-allow-headers" =     (
        "Accept, Authorization, Origin, Content-Type, Retry-After"
    );
    "access-control-allow-methods" =     (
        "GET, POST, OPTIONS, PUT, DELETE, PATCH"
    );
    "access-control-max-age" =     (
        604800
    );
    "alt-svc" =     (
        clear
    );
} }
[Data]: 99 bytes
[Result]: SUCCESS: {
    error =     {
        message = "Only valid bearer authentication supported";
        status = 400;
    };
}
[Timeline]: Timeline: { "Request Start Time": 574719466.223, "Initial Response Time": 574719466.647, "Request Completed Time": 574719466.651, "Serialization Completed Time": 574719466.704, "Latency": 0.423 secs, "Request Duration": 0.428 secs, "Serialization Duration": 0.053 secs, "Total Duration": 0.481 secs }
*************************
99 bytes
Optional(["error": {
    message = "Only valid bearer authentication supported";
    status = 400;
}])
...