我的应用程序允许典型的注册(电子邮件、用户名、密码等),但也允许Facebook/Twitter通过Parse注册/登录。如果可能的话,我想避免强迫用户在Facebook或Twitter上注册两次。目前,我已经添加了"Scringo's“编程注册功能,可以使用与我的应用程序相同的凭据将用户签名到"scringo”中;但是。如果他们和Facebook签约了呢?对于一个用户来说,登录Facebook,然后滑过一个条子,然后访问消息组件,被迫再次登录Facebook,这似乎让人非常困惑。
下面是我目前所拥有的,是否有链接Facebook/Twitter签名过程,以便两个Parse都能在一个按钮上按下Scringo获得信息?
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[Parse setApplicationId:@"...gzPI7Omoxc..."
clientKey:@"...s22ZqIbM7n..."];
[PFTwitterUtils
initializeWithConsumerKey:@"...W4XjjpHz..."
consumerSecret:@"...Czjtht7v5..."];
[PFAnalytics trackAppOpenedWithLaunchOptions:launchOptions];
[PFFacebookUtils initializeFacebook];
[self configureNavigationBar];
[Scringo initWithAppId:@"...N2cCMhW1Bv..." completion:^{
[Scringo addSidebar:self.window toLeft:YES];
PFUser *currentUser = [PFUser currentUser];
if (! [ScringoUser currentUser].isAuthenticated) {
[ScringoUser signUpWithEmail:currentUser.email userName:currentUser.username password:@"notforyou" completion:^(ScringoUser *aUser, BOOL isSuccess) {
if (isSuccess) {
[currentUser setObject:aUser.userId forKey:@"ScringoUserId"];
[currentUser saveInBackground];
}
}];
}
}];
return YES;
}发布于 2014-05-20 15:21:19
原来SDK中有一个方法(我只是忽略了它)
[Scringo connectFacebook]如果该应用程序已经成功登录到facebook,那么调用它也可以验证Scringo的身份。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[Parse setApplicationId:@"gzPI7OmoxcSYqQGWASjzVd8lP5q8FVJqh2ZLsXnp"
clientKey:@"s22ZqIbM7n8SN1End57vmTmmeL55YnIen7dmMhIR"];
[PFTwitterUtils
initializeWithConsumerKey:@"W4XjjpHzG03bWK8R0iPvs27Yy"
consumerSecret:@"Czjtht7v58yfZ00QV5Gkumfdy8RauCyPllYh5SPm00I3M6fkPP"];
[PFAnalytics trackAppOpenedWithLaunchOptions:launchOptions];
[PFFacebookUtils initializeFacebook];
[self configureNavigationBar];
[Scringo initWithAppId:@"cvOV3lLwQN2cCMhW1BvnW2eWnyoiLNgA" completion:^{
[Scringo addSidebar:self.window toLeft:YES];
PFUser *currentUser = [PFUser currentUser];
if (! [ScringoUser currentUser].isAuthenticated) {
if (currentUser) {
if (currentUser.email) [Scringo connectFacebook];
else
[ScringoUser signUpWithEmail:currentUser.email userName:currentUser.username password:@"notforyou" completion:^(ScringoUser *aUser, BOOL isSuccess) {
if (isSuccess) {
[currentUser setObject:aUser.userId forKey:@"ScringoUserId"];
[currentUser saveInBackground];
}
}];
}
}
}];
return YES;
}这是假设PFUser已经存在,所以我还首次为登录facebook的用户添加了相同的调用
- (void)logInViewController:(PFLogInViewController *)logInController didLogInUser:(PFUser *)user {
[self dismissViewControllerAnimated:YES completion:^{
if (!self.currentUser.email) [Scringo connectFacebook];
}];
}测试和工作。
https://stackoverflow.com/questions/23748287
复制相似问题