1

私は doFacebookLogin を呼び出して、アプリを承認するためにアプリを facebook に切り替えますが、アプリが自分の情報にアクセスできるようにしてから元に戻します。

何も起こりません。コンソールに「完了」はありません。

doFacebookLogin をもう一度呼び出すと、コンソールに表示されます

complete
Session state closed

これが私のコードです。

- (void)doFacebookLogin:(id)sender
{
[FBSession openActiveSessionWithReadPermissions:nil
                                   allowLoginUI:YES
                              completionHandler:
 ^(FBSession *session,FBSessionState state, NSError *error) {
     NSLog(@"complete");
     [self sessionStateChanged:session state:state error:error];
 }];
}

- (void)sessionStateChanged:(FBSession *)session state:(FBSessionState)state error:(NSError *)error
{
NSLog(@"Session state changed");
switch (state) {
    case FBSessionStateOpen:
        NSLog(@"Session state open");
        [[FBRequest requestForMe] startWithCompletionHandler:^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *user, NSError *error) {
            if(error == nil) {
                NSLog(@"%@", [user debugDescription]);
            }
        }];
        break;

    case FBSessionStateClosed:
    case FBSessionStateClosedLoginFailed:
        NSLog(@"Session state closed");
        [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];
}    
}
4

1 に答える 1