这只是一个问题,如果我使用最新的SDK登录Facebook登录,然后我再次尝试登录,它会问我"您已经授权了应用名称"。这是正常还是我必须改变一些东西以避免它。
在我的方案中,我在Facebook应用设置中启用了SSO ,这无法解决问题!!
每当我的登录窗口显示时,我都会退出Facebook并清除访问令牌,首先我想是因为这个,但是我被忽略了代码,但它仍然在询问! 我可以在必要时发布代码!!!
override func viewDidLoad() {
super.viewDidLoad()
fbloginButton.delegate = self
fbloginButton.readPermissions = ["public_profile", "email", "user_friends"]
if (FBSDKAccessToken.currentAccessToken() != nil)
{
var loginM:FBSDKLoginManager = FBSDKLoginManager()
loginM.logOut()
FBSDKAccessToken.setCurrentAccessToken(nil)
}
}
@IBAction func loginFb(sender:AnyObject)
{
fbLoginManager.logInWithReadPermissions(["email"], fromViewController: self.presentingViewController, handler: { (result, error) -> Void in
if (error == nil){
var fbloginresult : FBSDKLoginManagerLoginResult = result
}
})
}
func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError!) {
NSLog("didCompleteWithResult")
if ((error) != nil)
{
}
else if result.isCancelled {
}
else {
// If you ask for multiple permissions at once, you
// should check if specific permissions missing
if result.grantedPermissions.contains("email")
{
///Here I call a function to get data
}
}
答案 0 :(得分:1)
自从我使用Facebook SDK以来已经有一段时间了,但我认为当您退出时,您只是使当前的accessToken无效并结束您的会话,但它不会取消您的应用授权。< / p>
因此,当您登录时,您只需为已授权的FB应用程序生成新的accessToken。您需要再次登录(以验证您的身份),但您不需要再次授权,因此它会向您发送该消息。
如果您正在寻找权限,那么可以使用Graph API调用撤消权限。
如果你的问题是这是否正常&#34;。是的,我说这很正常。这是一个视觉指示,表示您此时再次与先前授权的FB应用程序连接。避免它可能会通过不发送任何权限来工作,但您通常不知道已经授权的用户是否再次登录,或者是否是全新的用户。如果后者在没有权限的情况下登录,那么,您的应用程序也不会像预期的那样工作。