如何从 FBSDKAuthenticationToken 获取 FBSDKAccessToken

How to get FBSDKAccessToken from FBSDKAuthenticationToken

在 LAT FB 登录的情况下,我们只得到 FBSDKAuthenticationToken 而 FBSDKAccessToken 为 nil。 https://developers.facebook.com/docs/facebook-login/limited-login/ios/

FBSDK 登录现在为 iOS 14 使用广告商跟踪标志(用户同意)。 如何从 FBSDKAuthenticationToken 获取 FBSDKAccessToken?或者如何从 FBSDKAuthenticationToken 获取 FB 配置文件?

根据Facebook的this blog post,限制模式和经典模式使用不同的背后认证方式。

受限登录模式基于 OpenID Connect 标准。 经典登录模式使用 oAuth 2.0。

因此,我认为无法通过身份验证令牌获取访问令牌。 但是我们可以在受限登录模式下获取用户的基本资料。 Facebook's documentation 中的一段代码揭示了如何做到这一点。

let loginManager = LoginManager()

// Ensure the configuration object is valid
guard let configuration = LoginConfiguration(tracking: .limited, nonce: "123") 
else {
    return
}

loginManager.logIn(configuration: configuration) { result in
    switch result {
    case .cancelled, .failed:
        // Handle error
        break
    case .success:
        // getting user ID
        let userID = Profile.current?.userID

        // getting pre-populated email
        let email = Profile.current?.email

        // getting id token string
        let tokenString = AuthenticationToken.current?.tokenString
    }
}

另请注意,受限登录模式不支持GraphAPI。