gpt4 book ai didi

ios - 无法在 swift 3/FBSDK 4.17 中正确检索 FBSDKAccessToken 当前 token

转载 作者:搜寻专家 更新时间:2023-10-30 22:15:56 25 4
gpt4 key购买 nike

我使用函数 FBSDKAccessToken.currentAccessToken() 来检索 FB token ,它工作正常,直到我在 swift 3 和 4.17 SDK 中迁移了我的应用程序。现在,该函数已重命名为 FBSDKAccessToken.current() 并且在应用程序委托(delegate)重新加载时为 nil。我已经执行了一些测试,并且在我重新启动我的应用程序并且我之前已经登录过 FB 之后我设法获得了 token ,但这不是我所期望的行为。

编辑:我恢复到 4.15 并且它正在重新处理。

这是我的 AppDelegate 中的代码:

func applicationDidBecomeActive(_ application: UIApplication)
{

FBSDKAppEvents.activateApp();

}

func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> (Bool)
{

let wasHandled: Bool = FBSDKApplicationDelegate.sharedInstance().application(application
,open:url
,sourceApplication:sourceApplication
,annotation:annotation)

if (wasHandled) {
if let fbtoken = FBSDKAccessToken.current() {
loginWithFacebook(fbtoken.tokenString);
}else{
print("no current token")
}
}

return wasHandled
}

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {


let wasHandled: Bool = FBSDKApplicationDelegate.sharedInstance().application(
app,
open: url as URL!,
sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as! String,
annotation: options[UIApplicationOpenURLOptionsKey.annotation]
)

if (wasHandled) {
if let fbtoken = FBSDKAccessToken.current() {
loginWithFacebook(fbtoken.tokenString);
}else{
print("no current token")
}
}

return wasHandled;
}

感谢您的帮助:)丹尼斯

最佳答案

出于某种原因,这不再有效。

如果您使用FBSDKLoginButton,您必须使用FBSDKLoginButtonDelegate 来等待回调。

class LoginView: UIViewController, FBSDKLoginButtonDelegate {
@IBOutlet weak var facebookButton: FBSDKLoginButton!

override func viewDidLoad() {
facebookButton.delegate = self
}

//Called at the end of the user connection
func loginButton(_ loginButton: FBSDKLoginButton!, didCompleteWith result: FBSDKLoginManagerLoginResult!, error: Error!) {
if ((error) != nil) {
//Process error
} else if result.isCancelled {
// Handle cancellations
print("result is canceled")
} else {
if let fbToken = result.token.tokenString {
print(fbToken)
}
}
}

func loginButtonDidLogOut(_ loginButton: FBSDKLoginButton!) {
print("logout from FB")
}
}

或者,您也可以使用 FBSDKLoginManager。在此处查看文档:

https://developers.facebook.com/docs/reference/ios/current/class/FBSDKLoginManager/

希望对您有所帮助!

关于ios - 无法在 swift 3/FBSDK 4.17 中正确检索 FBSDKAccessToken 当前 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40749512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com