1

新しい FBSession セッションを開いたときに、FBSessionDidSetActiveSessionNotification、FBSessionDidUnsetActiveSessionNotification、FBSessionDidBecomeOpenActiveSessionNotification、または FBSessionDidBecomeClosedActiveSessionNotification が起動されない理由を誰かが知っているかどうか疑問に思っていました。

FBSessionDidBecomeOpenActiveSessionNotification と FBSessionDidSetActiveSessionNotification を検出する唯一の方法は、[FBSession setActiveSession:]; を呼び出すときです。明示的に。

基本的に、私はそのようなものを得ました:

_session = [[FBSession alloc] initWithAppID: FACEBOOK_AppId
                                permissions: _facebookPermissions
                            defaultAudience: FBSessionDefaultAudienceOnlyMe
                            urlSchemeSuffix: nil
                         tokenCacheStrategy: nil];

    [_session openWithCompletionHandler:^(FBSession *session,
                                          FBSessionState status,
                                          NSError *error) {

        [FBSession setActiveSession: _session];
        // ...
    }];

[FBSession setActiveSession:]; を呼び出さなければならないのは正常ですか? ?

4

2 に答える 2

1

これを試して:

+ (BOOL)openActiveSessionWithPermissions:(NSArray*)permissions
                        allowLoginUI:(BOOL)allowLoginUI
                   completionHandler:(FBSessionStateHandler)handler;
于 2012-10-08T06:25:23.270 に答える
1

使用する

+ (BOOL)openActiveSessionWithReadPermissions:(NSArray*)readPermissions
                            allowLoginUI:(BOOL)allowLoginUI
                       completionHandler:(FBSessionStateHandler)handler;

ただし、これは実際には、既に行っていることと同様のことを行うための単なるヘルパー関数です。git リポジトリからソースを取得すると、FBSession.m で何が起こっているかがわかります。

于 2012-10-10T16:04:39.693 に答える