我有一個簡單的視圖控制器,有兩個按鈕。首先是官方Facebook登錄按鈕我facebooksdk無法獲得accesstoken swove
let loginButton = FBSDKLoginButton()
順便說了,我該如何看待FBSDKLoginButton的實施?我試過命令點擊,我沒有看到init函數。 無論如何,這個按鈕工作得很好。我可以登錄,我能夠與
accessToken = FBSDKAccessToken.current()
但是得到的accessToken每當我做我自己的登錄按鈕,我
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。
編輯: 好的網上尋找更我看到它,因爲我想
FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
是所謂的應用程序委託之前獲得訪問令牌。但是這引發了問題。爲什麼我不必擔心與原始按鈕有關的問題,但我爲自定義按鈕做了什麼?我如何確保首先調用委託方法?
編輯:現在,我把我的代碼中的打印語句,我看到,該方法只被調用一次。所以不,這不是問題。
編輯:要清楚,自定義按鈕允許我獲得正確的令牌,但不是在登錄後立即進行。我必須等待一段時間。但我不知道要等多久。
最終編輯:我想我已經解決了它。我現在將FBSDKAccessToken.current()放入facebook登錄管理器的完成處理程序中。中提琴!這似乎工作到目前爲止。不知道爲什麼沒有在線教程必須這樣做,但希望它沒有問題。
你是什麼,如果犯錯!=零的結果呢? –
錯誤總是零。換句話說,登錄是完美的。這是我無法獲得的訪問令牌。 –
您是否試過這個AccessToken.current –