2014-09-10 96 views
0

,而現在,我的「登錄與Facebook」在我的應用程序按鈕不會顯示這個對話框如何使用內置Facebook帳戶在IOS登錄IOS?

login dialog

了,但重定向我的Facebook應用程序。這是正常的嗎?是FacebookSDK還是我的登錄流程有錯誤?我遵循Facebook Login for IOS

我想創建自己的「使用Facebook登錄」按鈕,而不是重定向到Facebook應用程序,我希望顯示上面的對話框。請幫助我,我不知道在Google中搜索的術語。任何人都可以告訴我或指點我一個很好的教程?謝謝

+0

你登錄到Facebook在settings.app? – rckoenes 2014-09-10 14:01:42

+0

是的,我是..在設置應用程序中,我已經設置了我的Facebook帳戶 – 2014-09-10 15:27:47

回答

0

這是由於Facebook的圖形API v2.x.您應該閱讀這裏的更改:https://developers.facebook.com/docs/apps/upgrading

+0

哪裏?我沒看到它。對不起,但我不認爲這回答了我的問題,我該如何讓我的應用程序登錄Facebook而不重定向到Facebook應用程序。 – 2014-09-10 17:57:21

+0

@OscarYuandinata https://developers.facebook.com/blog/post/2014/04/ 30/the-new-facebook-login/ – freshking 2014-09-10 18:08:47

+0

那麼爲什麼一些當前特色的應用程序在登錄Facebook時仍然使用上述對話框而不是重定向到Facebook應用程序?他們是使用過時的Facebook SDK還是什麼? – 2014-09-11 01:33:29

0

1)您可以降級以使用Facebook SDK v3.13或更低版本。

OR

2)可以使用指定的行爲FBSessionLoginBehaviorUseSystemAccountIfPresent登錄。

示例代碼:

FBSessionStateHandler completionHandler = ^(FBSession *session, FBSessionState state, NSError *error) { 
     [self sessionStateChanged:session state:state error:error]; 
    }; 
if ([FBSession activeSession].state == FBSessionStateCreatedTokenLoaded) { 
    // we have a cached token, so open the session 
    [[FBSession activeSession] openWithBehavior:FBSessionLoginBehaviorUseSystemAccountIfPresent 
       completionHandler:completionHandler]; 
} else { 
    [FBSession.activeSession closeAndClearTokenInformation]; 
    // create a new facebook session 
    FBSession *fbSession = [[FBSession alloc] initWithPermissions:@[@"email", @"public_profile"]]; 
    [FBSession setActiveSession:fbSession]; 
    [fbSession openWithBehavior:FBSessionLoginBehaviorUseSystemAccountIfPresent 
       completionHandler:completionHandler]; 
} 

參考:Native Facebook Login stopped working after SDK update to 3.14