如何存储和访问 Twitter Fabric 登录会话 (iOS/Swift)?
How do I store & access a Twitter Fabric login session (iOS/Swift)?
我可以使用此 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 是我应用程序中的一个重要功能,但不是全部要求。
问题是我不知道如何在单击按钮和 logInCompletion
触发时访问 session
,而且我不知道初始时要存储哪些变量 login/check 使用该应用程序时。
我已经多次阅读 Twitter Fabric 文档,但它不是用 swift 编写的,所以它非常混乱。有任何想法吗?谢谢
如果当前有一个活动会话,您应该可以像文档中所说的那样访问它
Twitter.sharedInstance().session()
如果用户未登录,该方法将 return 为零。如果您想知道某人是否已经通过身份验证,只需检查该方法 return 是否是一个值。
如果用户未登录(不存在会话...),Twitter 工具包会自动显示登录屏幕。
但是,在调用任何 future 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 token
和 access token secret
。
要访问 Swift 4 中已登录用户会话的 authToken、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)
}
})
我可以使用此 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 是我应用程序中的一个重要功能,但不是全部要求。
问题是我不知道如何在单击按钮和 logInCompletion
触发时访问 session
,而且我不知道初始时要存储哪些变量 login/check 使用该应用程序时。
我已经多次阅读 Twitter Fabric 文档,但它不是用 swift 编写的,所以它非常混乱。有任何想法吗?谢谢
如果当前有一个活动会话,您应该可以像文档中所说的那样访问它
Twitter.sharedInstance().session()
如果用户未登录,该方法将 return 为零。如果您想知道某人是否已经通过身份验证,只需检查该方法 return 是否是一个值。
如果用户未登录(不存在会话...),Twitter 工具包会自动显示登录屏幕。 但是,在调用任何 future 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 token
和 access token secret
。
要访问 Swift 4 中已登录用户会话的 authToken、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)
}
})