アプリケーションで Facebook セッションのステータスを確認するために、次のコードを実装しています。
- (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");
[self reautorizarPermisos:self ];
}
break;
case FBSessionStateClosed:
NSLog(@"sesion close");
[self loginFB:self ];
break;
case FBSessionStateClosedLoginFailed:
NSLog(@"sesssion failed");
[FBSession.activeSession closeAndClearTokenInformation];
break;
default:
break;
}
[[NSNotificationCenter defaultCenter]
postNotificationName:UIDocumentStateChangedNotification
object:session];
if (error) {
UIAlertView *alertView = [[UIAlertView alloc]
initWithTitle:@"Error"
message:error.localizedDescription
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertView show];
}
}
このコードは、こちらの facebook ドキュメントからアクセスされました
そして、私は次のようにメソッドを呼び出しています
- (IBAction)login:(id)sender {
FBSession *sesion;
FBSessionState state;
NSError *error;
[self sessionStateChanged:sesion state:state error:error];
NSLog(@"loginnnnnnn");
}
問題は、状態がどのケースにも入らなかったことです。明らかに、セッションは開いていないか、閉じられているか、失敗していません。