我一直在使用Facebook.Client SDK的0.8.5-alpha版本,並希望移動高達最新的0.9.91-α自API表示它支持通過應用程序登錄的功能,但是可以使用瀏覽器登錄。Facebook.Client 0.9.91-α是一種倒退,以登錄到FB
Session.ActiveSession.LoginWithBehavior("email,public_profile,user_friends", FacebookLoginBehavior.LoginBehaviorAppwithMobileInternetFallback);
但是,這不起作用,實際上根本沒有實施。
爲了使事情變得更糟的0.9.91-alpha版本已經改變登錄工程LoginBehaviorWebViewOnly方法的方式。
在0.8.5-α有一個簡單的異步API
Task<FacebookSession> LoginAsync(string permissions)
這將打開一個瀏覽器彈出應用程序並返回到您之前管理broswer的身份驗證。
在0.9.91-α這個API已經用新的API
void LoginWithBehavior(string permissions, FacebookLoginBehavior behavior)
此API不使用的異步和迫使我們使用回調處理程序來代替
Session.OnFacebookAuthenticationFinished += OnFacebookAuthenticationFinished;
(而且不,你不能讓它異步與TaskCompletionSource - 見下段)
這仍然像以前一樣打開網頁視圖當登錄完成有一個URI協議NAVIGAT除離子事件(從FB登錄頁面)嘗試啓動已註冊的協議
fb446785792148002://authorize/#state={"0is_active_session":1
這不是由Facebook.Client處理的任何應用程序,所以導致你關閉應用並重新打開。
這是一個非常糟糕的實現,因爲您的應用程序已經打開。應該消費重定向,而不會導致您的應用關閉並重新打開。
實際上這很難使用,因爲它迫使應用程序啓動兩次。如果應用程序實現諸如擴展啓動畫面之類的操作,則此方法無效
的Facebook.Client應更新其
void DialogWebBrowserOnNavigating(object sender, NavigatingEventArgs navigatingEventArgs)
處理登錄流程結束,並返回到應用程序,而不必強制關閉/重新打開
好的,謝謝你的迴應。很高興聽到改變新的SDK版本的理由。 – user3745329 2015-02-16 16:24:21