2014-09-10 69 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