2016-01-24 20 views
0

我想我的自定义登录按钮有蓝色时:的accessToken甚至消除来自Facebook的应用程序后,仍然存在设置

  1. 该用户已授权应用程序和的accessToken仍然存在

我希望我的自定义登录按钮有灰色时:

  1. 访问令牌已经过期,我希望用户登录并获得一个新的

好吧,我试着用的if/else条件,你可以看到,但要真正检验这个做我做了以下内容:

  1. 去了我的Facebook设置(WEB)
  2. 被点击在“应用”搜索的应用
  3. ,并删除它现在

,我敢肯定,我的自定义登录按钮,将有GrayColor,因为从我的Facebook设置我甲肝删除授权的应用程序e也删除了一个accesstoken,但事实并非如此。

我取决于是否用户已授权的应用程序提前

由于需要我的自定义按钮,出现积极的(蓝色)和非活动(灰色)

我的代码:

import UIKit 
import FBSDKCoreKit 
import FBSDKLoginKit 

class ViewController: UIViewController { 

    let loginButton: UIButton = UIButton(type: .Custom) 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 

     if FBSDKAccessToken.currentAccessToken() != nil { 

      loginButton.backgroundColor = UIColor.blueColor() 
     } else { 
      loginButton.backgroundColor = UIColor.grayColor() 
     } 

     loginButton.frame = CGRectMake(0, 0, 180, 40) 
     loginButton.setTitle("My Login Button", forState: .Normal) 
     // Handle clicks on the button 
     loginButton.addTarget(self, action: "loginWithFacebook", forControlEvents: .TouchUpInside) 
     // Add the button to the view 
     self.view!.addSubview(loginButton) 

    } 

    func loginWithFacebook() { 
     let login: FBSDKLoginManager = FBSDKLoginManager() 

     login.logInWithPublishPermissions(["publish_actions"], fromViewController: self) { (result: FBSDKLoginManagerLoginResult!, error) -> Void in 
      if (error != nil) { 
       NSLog("Process error") 
      } 
      else if result.isCancelled { 
       NSLog("Cancelled") 
      } 
      else { 
       NSLog("Logged in") 
       self.loginButton.backgroundColor = UIColor.blueColor() 
      } 
     } 
    } 
} 

回答

1

为什么你必须在Facebook上删除你的应用程序?

当您运行,你可以从Mac上的顶栏选择模拟器: 模拟器>重置内容设置...>然后单击重置

这应该删除从模拟器的所有记忆。然后,您可以测试Facebook会话和访问令牌不存在时发生的情况。

+0

这正是我想要的。非常感谢 –

相关问题