如何使用Swifter授权Twitter

Mat*_*att 3 twitter xcode ios swift

有人可以向我解释如何使用Swifter for iOS成功授权Twitter(oAuth).我正在尝试创建一个时间表.

let twitterAccount = Swifter(consumerKey: "CONSUMER-KEY", consumerSecret: "CONSUMER-SECRET")
Run Code Online (Sandbox Code Playgroud)

然后我需要授权,我对如何这样做很困惑.

swifter.authorizeWithCallbackURL(callbackURL, success: {
(accessToken: SwifterCredential.OAuthAccessToken?, response: NSURLResponse) in

// ...

},
failure: {
    (error: NSError) in

    // ...

})
Run Code Online (Sandbox Code Playgroud)

我得到一个错误,说'未解决的callbackURL标识符',这显然是因为我没有定义它,但是当我这样做时说'呼叫中的额外参数'.还有更简单的授权方式吗?在此之后,我应该如何在get-home-timeline部分中获取用户screen-name/user-id.我知道我做的事情完全错了,我对这一切都很陌生,所以任何帮助都会受到赞赏.

Ati*_*ukh 6

也许你已经找到了答案,但我正在为那些仍在寻找它的人写这里.

swifter.authorizeWithCallbackURL(NSURL(string: "swifter://success")!, success: {
            (accessToken: SwifterCredential.OAuthAccessToken?, response: NSURLResponse) in

            println("Access Token key \(accessToken?.key)")
            println("userId\(accessToken?.userID)")
            println("userName\(accessToken?.screenName)")
            println("Access Token secret\(accessToken?.secret)")
            //Save the values that you need in NSUserDefaults 
            },
            failure: failureHandler)
Run Code Online (Sandbox Code Playgroud)

你可以使用任何callbackURL你喜欢的.但是,要让您的应用响应此网址,您必须进行一些更改.在AppDelegate课堂上添加以下内容.别忘了导入SwifteriOS

func application(application: UIApplication!, openURL url: NSURL!, sourceApplication: String!, annotation: AnyObject!) -> Bool {
        Swifter.handleOpenURL(url)

        return true
    }
Run Code Online (Sandbox Code Playgroud)

现在,在Project Explorer中单击您的项目,选择info选项卡.在底部你会看到URL Types.展开它并单击加号.在URL Schemes输入你的callbackURL计划.在这个例子中,它swifteridentifier你的应用程序标识符.

现在,ViewController您可以在调用任何需要身份验证的API之前调用以下任何其他内容.

required init(coder aDecoder: NSCoder) {

        var oauthToken : String = NSUserDefaults.standardUserDefaults().valueForKey("oauth_token") as String
        var oauthTokenSecret : String  = NSUserDefaults.standardUserDefaults().valueForKey("oauth_secret") as String

        self.swifter = Swifter(consumerKey: Twitter["consumerKey"]!, consumerSecret: Twitter["consumerSecret"]!, oauthToken: oauthToken, oauthTokenSecret: oauthTokenSecret)
        super.init(coder: aDecoder)
    }
Run Code Online (Sandbox Code Playgroud)

在此之后,您可以发送消息,发布推文,创建友谊等.