【发布时间】:2015-07-17 12:38:39
【问题描述】:
朋友们,我想将 Facebook 集成到我的应用程序中,以便我下载新的 Facebook SDK v.4.1.0,对于 Facebook 登录按钮,请使用 FBSDKLoginButton 的类,如下面的 Swift 代码。
if (FBSDKAccessToken.currentAccessToken() != nil)
{
// User is already logged in, do work such as go to next view controller.
// Or Show Logout Button
let loginView : FBSDKLoginButton = FBSDKLoginButton()
self.view.addSubview(loginView)
loginView.center = self.view.center
loginView.readPermissions = ["public_profile", "email", "user_friends"]
loginView.delegate = self
self.returnUserData()
}
else
{
let loginView : FBSDKLoginButton = FBSDKLoginButton()
self.loginButtonDidLogOut(loginView)
self.view.addSubview(loginView)
loginView.center = self.view.center
loginView.readPermissions = ["public_profile", "email", "user_friends"]
loginView.delegate = self
}
}
与上面的代码一样,显示“使用 Facebook 登录”按钮。
成功登录后显示注销按钮。当我点击注销按钮时,它的委托被调用 - 委托类FBSDKLoginButtonDelegate
注销的委托方法:
func loginButtonDidLogOut(loginButton: FBSDKLoginButton!) {
println("User Logged Out")
FBSDKAccessToken.setCurrentAccessToken(nil)
FBSDKProfile.setCurrentProfile(nil)
let manager = FBSDKLoginManager()
manager.logOut()
}
在委托中,我是明确的令牌,也称为FBSDKLoginManager 类中的注销功能。但每次都得到用户的授权屏幕。
没有登录屏幕,因此其他用户无法使用 facebook 登录。每次我必须清除浏览器历史记录。
没有清除浏览器历史,没有显示登录页面,导致其他用户无法登录。
问题:Facebook BUG
每次登出后显示画面:
【问题讨论】:
-
我也面临着同样的问题....还要得到年龄范围?
-
我错过了您希望其他用户能够登录的部分(您可能需要强调这一点)。这与 4.1 无关,至少在 3.x 中如此。还应该从 Facebook 应用程序(应用程序本身,而不是您的应用程序)注销。检查here。
-
@rokjarc 是的,这是真的..但是如果我们希望用户使用新凭据强制登录怎么办