即使从 Facebook 设置中删除应用程序后,AccessToken 仍然存在
AccessToken still exists even after removing an app from Facebook settings
我希望我的自定义登录按钮在以下情况下显示为蓝色:
- 用户已授权该应用程序并且 accesstoken 仍然存在
我希望我的自定义登录按钮在以下情况下显示为灰色:
- 访问令牌已过期,我希望用户登录并获得一个新的
好吧,如您所见,我尝试在 if/else 条件下执行此操作,但为了真正测试这一点,我执行了以下操作:
- 转到我的 Facebook 设置(WEB)
- 点击了'Apps'
- 已搜索该应用并将其删除
现在,我确定我的自定义登录按钮将具有 GrayColor,因为通过从我的 Facebook 设置中删除授权的应用程序,我也删除了一个访问令牌,但事实并非如此。
我需要我的自定义按钮显示为活动(蓝色)和非活动(灰色),具体取决于用户是否已授权应用程序
提前致谢
我的代码:
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()
}
}
}
}
为什么必须删除您在 Facebook 上的应用程序?
当您 运行 模拟器时,您可以从 mac 的顶部栏中选择:
Simulator > Reset Content Settings...> 然后点击 Reset
这应该会清除模拟器中的所有内存。然后您可以测试当 Facebook 会话和访问令牌不存在时会发生什么。
我希望我的自定义登录按钮在以下情况下显示为蓝色:
- 用户已授权该应用程序并且 accesstoken 仍然存在
我希望我的自定义登录按钮在以下情况下显示为灰色:
- 访问令牌已过期,我希望用户登录并获得一个新的
好吧,如您所见,我尝试在 if/else 条件下执行此操作,但为了真正测试这一点,我执行了以下操作:
- 转到我的 Facebook 设置(WEB)
- 点击了'Apps'
- 已搜索该应用并将其删除
现在,我确定我的自定义登录按钮将具有 GrayColor,因为通过从我的 Facebook 设置中删除授权的应用程序,我也删除了一个访问令牌,但事实并非如此。
我需要我的自定义按钮显示为活动(蓝色)和非活动(灰色),具体取决于用户是否已授权应用程序
提前致谢
我的代码:
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()
}
}
}
}
为什么必须删除您在 Facebook 上的应用程序?
当您 运行 模拟器时,您可以从 mac 的顶部栏中选择: Simulator > Reset Content Settings...> 然后点击 Reset
这应该会清除模拟器中的所有内存。然后您可以测试当 Facebook 会话和访问令牌不存在时会发生什么。