【发布时间】:2016-08-03 22:04:21
【问题描述】:
我正在用 Swift 开发一个 iOS9 应用程序,并使用最新的 Facebook SDK 进行登录。我已按照文档进行操作,登录工作正常,但重新启动时无法保留 facebook 访问令牌。具体来说,当我在模拟器和实际设备上终止应用程序然后重新启动应用程序时,尽管之前已登录,但我必须在同一设备上再次登录 Facebook。当我继续登录时,它会链接到 Facebook,并显示以下消息:“您已经授权应用名称”。
根据 Facebook SDK 文档,一旦登录,应用程序应缓存 FBSDKAccessToken,并且在用户退出并重新启动应用程序时它不应立即过期。
我的 AppDelegate.Swift 中有以下代码:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
return FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
}
然后我在 viewDidLoad() 中进行以下检查:
if(FBSDKAccessToken.currentAccessToken() != nil){}
有人知道为什么重新启动应用程序会使 AccessToken 为零吗?
编辑:
当我点击我的 Facebook 登录按钮时,我也收到此错误。我不确定这是否是上述问题的原因。 :
canOpenURL: failed for URL: "fbauth://authorize/?client_id=1068860826518986&default_audience=friends&display=touch&e2e=%7B%22init%22%3A1460515013815%7D&legacy_override=v2.4&redirect_uri=fbconnect%3A%2F%2Fsuccess&
response_type=token%2Csigned_request&return_scopes=true&scope=public_profile%2Cema
il%2Cuser_friends&sdk=ios&sdk_version=4.4.0&state=%7B%22challenge%22%3A%22YXJWy0wjHG2r4lnyAe%5C%2FMjqM3xy4%3D%22%2C%220_auth_logger_id%22%3A%22591AC45B-AB19-49AE-A994-
851223E03265%22%2C%22com.facebook.sdk_client_state%22%3Atrue%2C%223_method%22%3A0%7D"
- error: "This app is not allowed to query for scheme fbauth"
【问题讨论】:
-
签入
Info.plist,您已将NSAllowsArbitraryLoads设置为YES -
@bitsoverflow 是的,我也这样做了。结果还是一样。
标签: ios iphone swift facebook facebook-access-token