如何使用 Alamofire (Swift 2.2) 获取 Twitter 访问令牌

Posted

技术标签:

【中文标题】如何使用 Alamofire (Swift 2.2) 获取 Twitter 访问令牌【英文标题】:How to get Twitter access token with Alamofire (Swift 2.2) 【发布时间】:2016-06-23 20:17:59 【问题描述】:

我只能通过 Fabric 授权并获得 userIDuserName。但我需要获得“accessToken”。 我尝试发送类似这样的简单请求:

Alamofire.request(.GET, "https://api.twitter.com/1.1
/oauth2/token")
         .responseJSON  response in
             print(response)
         

但我没有成功(

还有一个...如何正确传递ConsumerKeyConsumerSecret 作为参数?

【问题讨论】:

【参考方案1】:

这是答案,也许它可以帮助某人:

let consumerKey = "yourConsumerKey"
let consumerSecret = "yourConsumerSecret"
let credentialsString = "\(consumerKey):\(consumerSecret)"
let credentialsData = (credentialsString as NSString).dataUsingEncoding(NSUTF8StringEncoding)
let base64String = credentialsData!.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0))
let headers = ["Authorization": "Basic \(base64String)", "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8"]
let params: [String : AnyObject] = ["grant_type": "client_credentials"]

Alamofire.request(.POST, "https://api.twitter.com/oauth2/token", headers: headers, parameters: params)
     .responseJSON  response in switch response.result 
         case .Success(let JSON):

            let response = JSON as! NSDictionary
            let userModel = response

            print("----------------")
            print("")
            print("userModel from TW")
            print(userModel)
            print("")
            print("----------------")

         case .Failure(let error):

            print("Request failed with error: \(error)")

            

【讨论】:

以上是关于如何使用 Alamofire (Swift 2.2) 获取 Twitter 访问令牌的主要内容,如果未能解决你的问题,请参考以下文章

Alamofire 在 swift 2.2 中抛出错误

在 Alamofire Swift 2.2 中使用 completionHandler

是否可以在 Swift 2.2 中使用使用 Alamofire 的 Soap API

使用 Alamofire 3.0+ 在 swift 2.2 中使用 JSON 对象发送 POST 请求

如何在 Swift / Alamofire 中使用 multipartFormData?

如何使用 Swift 3 将单例与 Alamofire 一起使用?