我正在尝试使用OAuthSwift在Twitter API中使用OAuth 1。我在整个过程中成功构建完成了所有设置步骤,但在最后一步我遇到了错误。当我实现以下代码时,我收到错误说"操作无法完成。 (OAuthSwiftError错误-10)"。我认为它可能与回调URL有关,但是很不清楚,并且没有关于此错误的大量文档。或者我的钥匙或秘密可能有问题?我直接从Twitter开发站点复制了它们。
let oauthswift = OAuth1Swift(
consumerKey: CONSUMER_KEY,
consumerSecret: CONSUMER_SECRET,
requestTokenUrl: "https://api.twitter.com/oauth/request_token",
authorizeUrl: "https://api.twitter.com/oauth/authorize",
accessTokenUrl: "https://api.twitter.com/oauth/access_token"
)
let _ = oauthswift.authorize(
withCallbackURL: URL(string: "oauth-swift://oauth-callback/twitter")!,
success: { credential, response, parameters in
print(credential.oauthToken)
print(credential.oauthTokenSecret)
print(parameters["user_id"])
// Do your request
},
failure: { error in
print(error.localizedDescription)
}
)
答案 0 :(得分:0)
这不是你问题的答案。 但是尝试使用Fabric来安装TwitterKit。 对我个人而言,这是一种更简单的方法。
答案 1 :(得分:0)
我需要创建类属性。 handle
和oauthswift
被声明为类的属性,现在代码可以正常工作。修改后的代码:
var oauthswift: OAuth1Swift!
var handle: OAuthSwiftRequestHandle!
var newOAuthToken: String!
override func viewDidLoad() {
super.viewDidLoad()
print("BEFORE OAUTHSWIFT")
oauthswift = OAuth1Swift(
consumerKey: CONSUMER_KEY,
consumerSecret: CONSUMER_SECRET,
requestTokenUrl: "https://api.twitter.com/oauth/request_token",
authorizeUrl: "https://api.twitter.com/oauth/authorize",
accessTokenUrl: "https://api.twitter.com/oauth/access_token"
)
print("AFTER OAUTHSWIFT")
handle = oauthswift.authorize(
withCallbackURL: URL(string: "oauth-swift://oauth-callback/twitter")!,
success: { credential, response, parameters in
print("OAuthToken: \(credential.oauthToken)")
print("OAuthSecret: \(credential.oauthTokenSecret)")
print("User ID: \(parameters["user_id"]!)")
// Do your request
},
failure: { error in
print(error.localizedDescription)
print(self.handle)
}
)
// Do any additional setup after loading the view, typically from a nib.
}