2

私は Facebook Scruptious の例に従いましたが、アプリの承認に問題があります。

アプリを実行し、ユーザーがネイティブの Facebook アプリにログインすると、アプリの承認は完全に機能します。ユーザーはネイティブ アプリに移動し、承認してアプリに戻ります。ただし、ユーザーが Facebook アプリにログインしていない場合、ログインを求められますが、認証は要求されず、ユーザーは Facebook アプリに残ります。質問: 1. これは FB のバグですか?解決する方法はありますか? 2.ホームボタンを押してアプリをもう一度開いた - 思った通りだった

- (void)applicationDidBecomeActive:(UIApplication *)application {

    [FBSession.activeSession handleDidBecomeActive];
}

失敗した認証を再試行して処理しますが、何も起こりませんでした。

これを解決するためのアドバイスをいただければ幸いです。

4

1 に答える 1

0

セッションの作成 (ログイン) 後に更新が行われていないと思います

次のようなものはありますか?

AppDelegate *appDelegate = [[UIApplication sharedApplication]delegate];

// this button's job is to flip-flop the session from open to closed
if (appDelegate.session.isOpen) {
    // if a user logs out explicitly, we delete any cached token information, and next
    // time they run the applicaiton they will be presented with log in UX again; most
    // users will simply close the app or switch away, without logging out; this will
    // cause the implicit cached-token login to occur on next launch of the application
    [appDelegate.session closeAndClearTokenInformation];

} else {
    if (appDelegate.session.state != FBSessionStateCreated) {
        // Create a new, logged out session.
        appDelegate.session = [[FBSession alloc] init];
    }

    // if the session isn't open, let's open it now and present the login UX to the user
    [appDelegate.session openWithCompletionHandler:^(FBSession *session, 
                                                     FBSessionState status, 
                                                     NSError *error) {
        // and here we make sure to update our UX according to the new session state
        [self updateView];
    }];
} 

そうすることを忘れないでください[self updateView];

UpdateViewが次のようなものであると仮定します。

- (void)updateView {
// get the app delegate, so that we can reference the session property
AppDelegate *appDelegate = [[UIApplication sharedApplication]delegate];
if (appDelegate.session.isOpen) {        
    // valid account UI is shown whenever the session is open
    [self.buttonLoginLogout setTitle:@"Log out" forState:UIControlStateNormal];        
    [self.textNoteOrLink setText:[NSString stringWithFormat:@"https://graph.facebook.com/me/friends?access_token=%@", appDelegate.session.accessTokenData.accessToken]];

    [self performSegueWithIdentifier:@"inicio" sender:self];
} else {        
    // login-needed account UI is shown whenever the session is closed
    [self.buttonLoginLogout setTitle:@"Log in" forState:UIControlStateNormal];        
    [self.textNoteOrLink setText:@"Login to create a link to fetch account data"];        
}

 }
于 2013-03-17T17:02:18.217 に答える