gpt4 book ai didi

ios - facebooksdk 无法快速获取 accesstoken

转载 作者:行者123 更新时间:2023-11-30 12:17:17 29 4
gpt4 key购买 nike

我有一个带有两个按钮的简单 View Controller 。第一个是我使用

获得的官方 Facebook 登录按钮
let loginButton = FBSDKLoginButton()

顺便问一下,如何查看FBSDKLoginButton的实现?我尝试过单击命令,但没有看到 init 函数。无论如何,这个按钮工作得很好。我可以登录,并且可以使用

获取 accessToken
accessToken = FBSDKAccessToken.current()

但是每当我制作自己的登录按钮并使用

登录时
FBSDKLoginManager().logIn(withReadPermissions: ["email", "public_profile"], from: self) { (result, err) in
if err != nil {
print("Custom FB login failed", err ?? "")
return
}
}

我当前的 accessToken 返回 nil。我不明白为什么它适用于普通按钮但不适用于我自己的按钮。我做错了什么?

更奇怪的是,有时两个按钮都可以工作。当我重新启动应用程序时,大约有 9/10 次会失败,但有 1/10 次会正常。

编辑:好吧,在网上查看更多,我看到了它,因为我之前尝试获取访问 token

FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)

在应用程序委托(delegate)中调用。但这引出了一个问题。为什么我不必担心原始按钮的问题,但我需要担心自定义按钮的问题?如何确保首先调用委托(delegate)方法?

编辑:现在我在代码中添加了一条 print 语句,我发现该方法只被调用一次。所以不,这不是问题。

编辑:需要明确的是,自定义按钮允许我获得正确的 token ,但不能在登录后立即获得。我必须等待一段时间。但不知道要等多久。

最终编辑:我想我已经解决了。我现在将 FBSDKAccessToken.current() 放入 facebook 登录管理器的完成处理程序中。中提琴!到目前为止这似乎有效。不确定为什么在线教程都不需要这样做,但希望它可以正常工作。

最佳答案

如果错误为零,则 accessToken 位于 FBSDKAccessToken.currentAccessToken()

swift 2

if let token = FBSDKAccessToken.currentAccessToken() {

let accessToken = token.tokenString
// USE YOUR TOKEN HERE
}

关于ios - facebooksdk 无法快速获取 accesstoken,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45242751/

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