Voglio mettere qualche integrazione Facebook nella mia app. A questo punto sono riuscito ad accedere, postare al muro di amici, recuperare la lista di amici, ecc. Tutto è OK tranne una cosa ...Facebook SDK 3.1 iOS: gestisci il login se l'utente rimuove l'app da Impostazioni Facebook
Se l'utente rimuove l'app da your Facebook settings/Applications e quindi entra in l'app per iOS, il codice non riconosce che l'app di Facebook è stata rimossa dalle impostazioni utente e presuppone che abbia effettuato l'accesso (questo è il problema perché se l'utente tenta di postare sulla bacheca di un amico, l'app non fa nulla).
Quindi, l'utente chiude l'applicazione iOS e rilancia lo ... Con questo rilancio, l'applicazione iOS "è fisso" e rileva che l'utente non è più connesso.
io non riesco a rilevare il momento giusto dopo che l'utente elimina l'applicazione Facebook dalle impostazioni al fine di portare il flusso di accesso per l'utente ...
Ecco il mio codice:
alla prima scena del mio app ...
if([FBSession activeSession].state == FBSessionStateCreatedTokenLoaded)
{
NSLog(@"Logged in to Facebook");
[self openFacebookSession];
UIAlertView *alertDialog;
alertDialog = [[UIAlertView alloc] initWithTitle:@"Facebook" message:@"You're already logged in to Facebook" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
[alertDialog show];
[alertDialog release];
return YES;
}
else{
NSLog(@"Not logged in to Facebook"); //Show the login flow
return NO;
}
Qui è il codice per openFacebookSession
-(void)openFacebookSession
{
NSArray *permissions = [[NSArray alloc] initWithObjects:
@"publish_stream",
nil];
[FBSession openActiveSessionWithPublishPermissions:permissions defaultAudience:FBSessionDefaultAudienceFriends allowLoginUI:YES completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
[self sessionStateChanged:session state:status error:error];
}];
}
Codice in sessionStateChanged ...
-(void)sessionStateChanged:(FBSession *)session state:(FBSessionState)state error:(NSError *)error
{
switch (state) {
case FBSessionStateOpen: {
NSLog(@"Session opened");
}
break;
case FBSessionStateClosed:
case FBSessionStateClosedLoginFailed:
[FBSession.activeSession closeAndClearTokenInformation];
break;
default:
break;
}
if (error) {
UIAlertView *alertView = [[UIAlertView alloc]
initWithTitle:@"Error"
message:error.localizedDescription
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertView show];
}
}
Grazie mille!
Come hai risolto questo problema? – SAHM
Non l'ho ancora risolto ...: C – Axort
Questa risposta mi ha aiutato http://stackoverflow.com/questions/12745235/handle-invalid-accesstoken-with-fbsession-openactivesessionwithreadpermissions-i – michael23