4

アプリケーションでは Facebook SSO を使用します。Facebook ログイン アプリをクリックすると、Facebook アプリに移動し、ログインが表示されます。しかし、ログイン後、アプリに戻りません。ただし、ユーザーが既に Facebook アプリにログインしている場合、ログイン ボタンをクリックすると Facebook アプリに切り替わり、許可ダイアログが表示されます。許可をクリックすると、アプリに戻ります。それはデフォルトの動作ですか?または、コードまたは Facebook アプリの設定に問題がありますか? 前もって感謝します。

SHAppDelegate *appDelegate = [SHAppDelegate application];
NSArray * permissions = [[NSArray alloc]initWithObjects:FACEBBOK_PERMISSION, nil];
  if (!appDelegate.session.isOpen) {
    appDelegate.session = [[[FBSession alloc] initWithPermissions:permissions] autorelease];
    if (appDelegate.session.state == FBSessionStateCreatedTokenLoaded) {
        [appDelegate.session openWithCompletionHandler:^(FBSession *session, 
                                                         FBSessionState status, 
                                                         NSError *error) {
            [self updateView];
        }];
    }
}
if (appDelegate.session.isOpen) {
    [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];
    }];
}
4

1 に答える 1

1

同じ問題があります。これは .plist の問題ではありません。(fbXXXXX を使用した) URLSchemes がなければ、Facebook アプリと safari がアプリケーションに戻ることはありません。この場合、Faccebook アプリは、ユーザーがログインしていない場合にのみ返されません。Safari はこの状況を正しく処理します。ユーザーが権限の確認をキャンセルした場合、Facebook アプリが制御を返さないのと同じ方法です。他の状況では、大丈夫です。

于 2012-10-03T13:01:58.357 に答える