1

FBSessionの状態を確認していました

- (BOOL)hasValidSession {
    return (self.session.state == FBSessionStateOpen)
 }

時折、状態が一時的に FBSessionStateOpenTokenExtended に変更され、NO が返され、ログイン モーダルが停止することがありました。もう一度接続をクリックすると、アクティブな Facebook セッションを再確立しようとしてアプリがクラッシュします。だから私はそれを

- (BOOL)hasValidSession {
if (self.session.state == FBSessionStateOpen || self.session.state == FBSessionStateOpenTokenExtended) {
    return YES;
}
else {
    return NO;
}}

上記の方法はこれまでのところ機能しますが、ハックのようです...アプリで有効なセッションを確認するための最も一般的な方法は何ですか?

4

2 に答える 2

3

これは、アプリでFacebookセッションを確認する方法であり、私にとってはうまくいきます:

-(BOOL)checkFacebookSession
{
    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");
        return NO; //Show login flow.
    }
}

それが役に立てば幸い!:D

于 2012-10-11T23:41:07.210 に答える