如何使用 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 授权并获得 userID
和 userName
。但我需要获得“accessToken”。
我尝试发送类似这样的简单请求:
Alamofire.request(.GET, "https://api.twitter.com/1.1
/oauth2/token")
.responseJSON response in
print(response)
但我没有成功(
还有一个...如何正确传递ConsumerKey
和ConsumerSecret
作为参数?
【问题讨论】:
【参考方案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 中使用 completionHandler
是否可以在 Swift 2.2 中使用使用 Alamofire 的 Soap API
使用 Alamofire 3.0+ 在 swift 2.2 中使用 JSON 对象发送 POST 请求