【发布时间】:2018-01-16 00:39:01
【问题描述】:
我使用 FirebaseAuthUi 在我的应用中管理身份验证。
当用户登录时,我需要他们的 Facebook 访问令牌来发出图形请求。用户第一次登录时它运行良好,但当应用程序重新启动时,图形 API 调用不起作用,因为我不再拥有 Facebook 访问令牌。
所以我需要将此令牌保存在 UserDefaults 或 Keychain 中。我的问题是我无法将此令牌保存为 AccessToken。我可以将它保存为字符串,但是当我想进行图形调用时,我需要一个 AccessToken,我认为我无法从保存的字符串中获取 AccessToken。
你知道我是怎么做到的吗?这是我的代码:
//checkLoggedIn
authHandle = Auth.auth().addStateDidChangeListener { auth, user in
if let user = user {
// User is signed in.
UserDefaults.standard.set(String(describing: AccessToken.current), forKey: "savedFacebookToken")
UserDefaults.standard.synchronize()
let savedFacebookToken = UserDefaults.standard.object(forKey: "savedFacebookToken")
let connection = GraphRequestConnection()
connection.add(GraphRequest(graphPath: "/me/friends", accessToken: savedFacebookToken as! AccessToken)) { httpResponse, result in
我收到以下错误消息:
Could not cast value of type 'Swift._NSContiguousString' (0x10a0f4f50) to 'FacebookCore.AccessToken' (0x1068aa9f0).
编辑: 我还不能在真机上测试它。
【问题讨论】:
-
Alex 寻找答案,如果您有任何困惑,请告诉我。
标签: ios swift firebase facebook-graph-api firebase-authentication