OAuthSwift错误-10尝试连接到Twitter时

时间:2018-03-03 19:37:50

标签: swift oauth twitter-oauth

我正在尝试使用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)
        }
        )

2 个答案:

答案 0 :(得分:0)

这不是你问题的答案。 但是尝试使用Fabric来安装TwitterKit。 对我个人而言,这是一种更简单的方法。

答案 1 :(得分:0)

我需要创建类属性。 handleoauthswift被声明为类的属性,现在代码可以正常工作。修改后的代码:

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.
    }