1

私はグラフAPIに従いましたが、これまですべてが順調に進んでいます。Facebookからログアウトしようとすると問題が発生します。ログアウトは発生しません:私はこの方法を使用しました:

    [facebook logout];

デリゲートメソッドを実装しました:

    - (void) fbDidLogout {

NSLog(@"did logout");

// Remove saved authorization information if it exists
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBAccessTokenKey"]) {
    [defaults removeObjectForKey:@"FBAccessTokenKey"];
    [defaults removeObjectForKey:@"FBExpirationDateKey"];
    [defaults synchronize];
}

}

問題は、ユーザーがアプリケーションを再度実行したときに、ユーザーが再度ログインすることです。Facebookの画面に入るたびに、新しいユーザーがログインするようにしたいと思います。ただし、この方法は機能しません。助けてください

4

3 に答える 3

4
- (void)logOutFB {

fbGraph.accessToken = nil;
NSHTTPCookie *cookie;
NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (cookie in [storage cookies])
{
    NSString* domainName = [cookie domain];
    NSRange domainRange = [domainName rangeOfString:@"facebook"];
    if(domainRange.length > 0)
    {
        [storage deleteCookie:cookie];
    }
}
}
于 2012-06-08T10:24:12.223 に答える
1

次のコードを実装します

Facebook *fb; //your fbconnect object

if([fb isSessionValid])
{
    fb.accessToken = nil;
    fb.expirationDate = nil;
}
于 2012-06-08T09:18:28.193 に答える
0

それを試してみてください :

-(void)fbLogout  {  
    fbGraph.accessToken = nil;  
    NSHTTPCookie *cookie;   
    NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];   
    for (cookie in [storage cookies])   {
        NSString* domainName = [cookie domain];
        NSRange domainRange = [domainName rangeOfString:@"facebook"];
        if(domainRange.length > 0)
        {
            [storage deleteCookie:cookie];
        }       }   [NSUserDefaults resetStandardUserDefaults];
    [[NSUserDefaults standardUserDefaults]removeObjectForKey:@"fb_accesstoken"];    fbGraph.accessToken = nil;
    NSHTTPCookie *cookie;
    NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
    for (cookie in [storage cookies])
    {
        NSString* domainName = [cookie domain];
        NSRange domainRange = [domainName rangeOfString:@"facebook"];
        if(domainRange.length > 0)
        {
            [storage deleteCookie:cookie];
        }
    }  }
于 2012-06-08T09:27:56.650 に答える