iOS Facebook 登录按钮与 swift
Posted
技术标签:
【中文标题】iOS Facebook 登录按钮与 swift【英文标题】:iOS Facebook login button with swift 【发布时间】:2016-07-13 18:39:52 【问题描述】:只是想知道我在下面的代码中做错了什么,块 facebookLogin.login(withReadPermissions:) 中的代码永远不会被调用。
@IBAction func fbBtnPressed(sender: UIButton!)
let facebookLogin = FBSDKLoginManager()
facebookLogin.logIn(withReadPermissions: [ "email" ], from: self) (facebookResult: FBSDKLoginManagerLoginResult?, facebookError:NSError?) in
if facebookError != nil
print("Facebook login failed. Error \(facebookError)")
else
let accessToken = FBSDKAccessToken.current().tokenString
print("Successfully logged in with facebook. \(accessToken)")
【问题讨论】:
按钮的连接是否正确?按钮功能是否被调用? 是的,按钮函数被调用了。 【参考方案1】:facebookLogin
可能在函数调用结束时超出范围,在它有时间完成之前被释放。
尝试将let facebookLogin = FBSDKLoginManager()
移动到包含(类)范围:
let facebookLogin = FBSDKLoginManager()
@IBAction func fbBtnPressed(sender: UIButton!)
facebookLogin.logIn(withReadPermissions: [ "email" ], from: self) (facebookResult: FBSDKLoginManagerLoginResult?, facebookError:NSError?) in
// ...
【讨论】:
【参考方案2】:当您请求许可时,您确定令牌存在吗?如Facebook Login SDK 中所述,
在调用 loginManager 之前,您应该检查现有令牌的可用性。
否则,您需要使用self.facebookLogInButton.readPermissions = ["email"]
为您的登录按钮设置权限,如我链接的权限页面所述
【讨论】:
以上是关于iOS Facebook 登录按钮与 swift的主要内容,如果未能解决你的问题,请参考以下文章
带有 Facebook 单点登录的 iOS 应用程序中的“点赞”按钮