1

私は 2 を持っていViewControllersます。

  • 最初のViewController Facebookにログインするためのボタンがあり、正しく機能し、セッションが開いた状態になります
  • 2番目のViewControllerにはいくつかのボタン(メニュー)があり、ここでは写真のfacebookプロフィールを表示したいと考えています。

FacebookSDK 3.2 と iOS 6.1 のこの例に従いました。

問題:FBSession.activeSession.isOpen 1 番目( ログインVewControllerを行った場所) は TRUE で、2 番目に行っViewControllerてログインを戻すと、まだ有効です。私の2番目ViewControllerに(私が持っているところでは、FBProfilePictureView私のFBSession.activeSession.isOpenはFALSEです.

どうすれば解決できますか?

4

1 に答える 1

0

さて、私がすること:

あなたが作成する場所@property facebookSession
... .h ...

@property (nonatomic,strong)FBSession* facebookSession;

... .m ...

@synthesize facebookSession = _facebookSession;

次に作成する必要があります。

        _facebookSession = [[FBSession alloc] initWithAppID:kAppId
                                                permissions:permissions
                                            urlSchemeSuffix:nil
                                         tokenCacheStrategy:[FBSessionTokenCachingStrategy defaultInstance]

                                ];

その後、次を承認する必要があります。

    [_facebookSession openWithCompletionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
        if(error){
            DLog(@"can't open session with caching strategy!");
        }
        else{
            DLog(@"open session with caching strategy: %@",[[FBSessionTokenCachingStrategy defaultInstance] fetchTokenInformation]);
        }
    }];

Facebook SDK を独自のクラスでラップすることをお勧めします。

于 2013-03-05T16:25:04.980 に答える