Moja aplikacja na iOS korzysta z Facebooka do logowania, jednak moja grupa deweloperów zdecydowała się ostatnio skonsolidować wszystkie nasze aplikacje w jedną uniwersalną aplikację na Facebooku z powszechnym ID aplikacji. Poszedłem więc do mojego projektu i próbowałem zmienić mój FacebookAppID i Typy URL w odpowiedni identyfikator aplikacji, ale kiedy uruchomię aplikację i kliknę przycisk logowania, przekierowuję mnie, aby zalogować się do mojej starej aplikacji na Facebooku. Absolutnie nie mam pojęcia, dlaczego tak się dzieje, ale tutaj jest to, co mam w AppDelegate pliku:Facebook loguje się do niewłaściwej aplikacji na iOS
/*
Callback for session changes
*/
- (void)sessionStateChanged:(FBSession *)session
state:(FBSessionState) state
error:(NSError *)error
{
switch (state) {
case FBSessionStateOpen:
if (!error) {
// We have a valid session
NSLog(@"User session found");
}
break;
case FBSessionStateClosed:
case FBSessionStateClosedLoginFailed:
[FBSession.activeSession closeAndClearTokenInformation];
break;
default:
break;
}
[[NSNotificationCenter defaultCenter]
postNotificationName:FBSessionStateChangedNotification
object:session];
if (error) {
UIAlertView *alertView = [[UIAlertView alloc]
initWithTitle:@"Error"
message:error.localizedDescription
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertView show];
}
}
/*
* Opens a Facebook session and optionally shows the login UX.
*/
- (BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI {
NSArray *permissions = [[NSArray alloc] initWithObjects:
@"email",
@"user_games_activity",
@"user_location",
@"user_likes",
@"user_birthday",
nil];
return [FBSession openActiveSessionWithReadPermissions:permissions
allowLoginUI:allowLoginUI
completionHandler:^(FBSession *session,
FBSessionState state,
NSError *error) {
[self sessionStateChanged:session
state:state
error:error];
}];
}
/*
* If we have a valid session at the time of openURL call, we handle
* Facebook transitions by passing the url argument to handleOpenURL
*/
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation {
// attempt to extract a token from the url
return [FBSession.activeSession handleOpenURL:url];
}
/*
*Logout
*
*/
- (void) closeSession {
[FBSession.activeSession closeAndClearTokenInformation];
}
Okazało się, że miałem więcej niż jeden schemat URL, naprawiłem problem! Dzięki wielkie. –
Znalazłem dwie aplikacje, które mam ten sam schemat URL na Facebooku i zmieniłem schemat adresu URL, ale nic się nie stało, wciąż otwieram kolejną aplikację. –