1

facebook-ios-sdk を使用しています。私は基本的にappDelegateからfacebookを取得しており、viewControllerにヒットするたびにこのメソッドを呼び出します:

- (void)openFacebook{
    appDelegate.facebook = [[Facebook alloc] initWithAppId:@"11234567892515" andDelegate:self];

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    if ([defaults objectForKey:@"FBAccessTokenKey"] 
        && [defaults objectForKey:@"FBExpirationDateKey"]) {
        appDelegate.facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
        appDelegate.facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
    }

    if (![appDelegate.facebook isSessionValid]) {
        NSArray *permissions = [[NSArray alloc] initWithObjects:
                                @"user_likes", 
                                @"read_stream",
                                @"user_photos",
                                //@"user_about_me",
                                //@"email",
                                @"publish_stream",
                                @"publish_actions", 
                                nil];
        [appDelegate.facebook authorize:permissions];
        NSLog(@"Facebook session is valid"); 
        [appDelegate.facebook extendAccessTokenIfNeeded];
    } 




}

問題は....アプリが許可されていても、アプリケーションを許可するダイアログが表示される...

アプリを既に承認しているにもかかわらず、アプリの承認を求めるたびにポップアップしないようにするにはどうすればよいですか? 簡単に言ってください、私は天才ではありません:)。

4

1 に答える 1

0

ログインしたら、 AccessToken と ExpiryDate を保存していないと思います。

これを追加して、これらのストアが UserDefaults にあるかどうかを確認します

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSLog(@"%@", [defaults dictionaryRepresentation]);

あなたの Facebook の fbDidLogin メソッドでは、このようなものがありますか?

// Store session info.
    [[NSUserDefaults standardUserDefaults] setObject:_facebook.accessToken forKey:@"FBAccessTokenKey"];
    [[NSUserDefaults standardUserDefaults] setObject:_facebook.expirationDate forKey:@"FBExpirationDateKey"];
    [[NSUserDefaults standardUserDefaults] synchronize];
于 2012-09-04T19:18:10.697 に答える