【问题标题】:AlamoFire Authorization header OauthAlamoFire 授权标头 Oauth
【发布时间】:2016-07-31 20:03:27
【问题描述】:

我正在尝试使用 Alamofire 和 twitter API 从特定用户那里获取推文。我已经使用 cURL 命令成功拨打了电话,但我无法使用 AlamoFire 拨打电话。它为 Bad Authentication data 提供 215 错误。

 curl --get 'https://api.twitter.com/1.1/statuses/user_timeline.json' --data 'count=2&screen_name=twitterapi' --header 'Authorization: OAuth oauth_consumer_key="lfa3XmdguuAqu3MoEQ6Fo01s0", oauth_nonce="0d50d7938a68be1ed73bcf02d4cc57e8", oauth_signature="8wZF1F%2B70okWLOi4s7dwKlJKc5w%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1460320508", oauth_version="1.0"' --verbose


        let key = "lfa3XmdguuAqu3MoEQ6Fo01s0"
    let secret = "25EUfqUstgdjZFgYnecrYuPkG6fDkruCjRXr905kM7475W2G63"
    let data = ["screen_name": "twitterapi", "count": 2]
    let path = "https://api.twitter.com/1.1/statuses/user_timeline.json"
    Alamofire.request(.GET, path, parameters: data)
        .authenticate(user: key, password: secret)
        .responseJSON { response in
            if let JSON = response.result.value {
                print("JSON: \(JSON)")
            }
    }

如何在 AlamoFire 中为自定义标头授权?我想我需要一个身份验证令牌,但我不确定从哪里开始获取这些令牌。谢谢

【问题讨论】:

    标签: swift curl twitter oauth alamofire


    【解决方案1】:

    要提供自定义授权,您必须这样做:

    let headers = ["Authorization": "Bearer \(Token.sharedInstance.value!)"]
    
    Alamofire.request(.PUT, url, headers: headers, parameters: data, encoding: .JSON).responseJSON { response in
    
    }
    

    令牌类:

    class Token { 
    
        var value:String? 
    
        static let sharedInstance = Token() 
    
        private init() {      } 
    
    }
    

    【讨论】:

    • 我的问题是如何创建 Token.shareInstance.value - 你能解释一下吗?谢谢
    • 令牌是一个类!当您获得服务器的 Token 时,您将保存在 Token.sharedInstance.value 中以供所有应用程序使用。 Token类是这样的:
    猜你喜欢
    • 2012-06-19
    • 1970-01-01
    • 2017-12-08
    • 2013-04-19
    • 1970-01-01
    • 2017-07-15
    • 1970-01-01
    • 2012-08-18
    • 1970-01-01
    相关资源
    最近更新 更多