如何存储和访问Twitter Fabric登录会话(iOS / Swift)?

问题描述 投票:6回答:3

我可以使用这个Twitter Fabric代码通过我的应用程序登录Twitter:

 let logInButton = TWTRLogInButton(logInCompletion: {
        (session: TWTRSession!, error: NSError!) in
             // play with Twitter session
             if (session != nil) {
                 println("signed in as \(session.userName)");
                 self.TWUsernameLabel.text = "Logged in as @" + session.userName
        } else {
            println("error: \(error.localizedDescription)");
        }
    })

当我点击登录按钮时,它会提示我批准登录,然后登录,或者它知道我已经批准了登录,它会让我登录。这就像一个魅力,并花了十分钟设置。惊人。

我已经有一个基于电子邮件的登录来访问该应用程序。我想将用户登录的Twitter帐户存储在同一个数据库中,因此当用户使用他们的电子邮件登录时,我已经知道他们的Twitter(如果他们之前已经登录)并且他们不需要再次登录。我进行电子邮件登录的原因是因为Twitter是我的应用程序中的一个重要功能,但不是一个完整的要求。

问题是我不知道如何在点击按钮和session触发之外访问logInCompletion,并且我不知道在初次登录/使用应用时检查时要存储哪些变量。

我已经多次阅读过Twitter Fabric文档,但它不是用swift编写的,所以它很混乱。有任何想法吗?谢谢

ios swift twitter twitter-fabric
3个回答
3
投票

如果当前有活动会话,您应该能够像文档中所说的那样访问它

Twitter.sharedInstance().session() 

如果用户未登录,则该方法将返回nil。如果您想知道某人是否已经过身份验证,请检查该方法是否返回值。


1
投票

如果用户尚未登录,Twitter工具包会自动显示登录屏幕(不存在会话..)。但是,在调用任何未来的API之前,只需检查会话是否有效。在某些API中,您可能还需要通过此会话。

if ([[Twitter sharedInstance] session]) {

        TWTRShareEmailViewController *shareEmailViewController =
        [[TWTRShareEmailViewController alloc]
         initWithCompletion:^(NSString *email, NSError *error) {
             NSLog(@"Email %@ | Error: %@", email, error);
         }];

        [self presentViewController:shareEmailViewController
                           animated:YES
                         completion:nil];
    } else {
        // Handle user not signed in (e.g. attempt to log in or show an alert)
    }
}

您甚至不必担心存储和管理access tokenaccess token secret


0
投票

要访问authToken,在Swift 4中登录用户会话的userName或userID是:

Twitter.sharedInstance().logIn(completion: { (session, error) in
     if (session != nil) {
         print(session!.authToken)
         print(session!.userName)
         print(session!.userID)
     } else {
         print(error?.localizedDescription)
     }
})
© www.soinside.com 2019 - 2024. All rights reserved.