首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Facebook.Client 0.9.91-alpha是登录FB的一个倒退

Facebook.Client 0.9.91-alpha是登录FB的一个倒退
EN

Stack Overflow用户
提问于 2015-02-10 18:34:14
回答 1查看 402关注 0票数 2

我一直在使用API的0.8.5-alpha版本,并希望升级到最新的0.9.91-alpha版本,因为Facebook.Client表明它支持通过应用程序登录,但后退到使用浏览器登录。

代码语言:javascript
复制
Session.ActiveSession.LoginWithBehavior("email,public_profile,user_friends", FacebookLoginBehavior.LoginBehaviorAppwithMobileInternetFallback);

然而,这并不起作用,实际上根本没有实现。

更糟糕的是,0.9.91-alpha版本改变了LoginBehaviorWebViewOnly方法的登录方式。

在0.8.5-alpha中有一个简单的异步API

代码语言:javascript
复制
Task<FacebookSession> LoginAsync(string permissions)

这将打开一个浏览器弹出窗口来管理基于浏览器的身份验证,然后返回到您的应用程序。

在0.9.91-alpha版本中,此API已被新的API所取代

代码语言:javascript
复制
void LoginWithBehavior(string permissions, FacebookLoginBehavior behavior)

此API不使用异步,而是强制我们使用回调处理程序

代码语言:javascript
复制
Session.OnFacebookAuthenticationFinished += OnFacebookAuthenticationFinished;

(不,你不能让它与TaskCompletionSource同步-见下一段)

这仍然会像以前一样打开一个when视图,除非登录完成后会有一个uri协议导航事件(从FB登录页面)试图启动任何注册了该协议的应用程序。

代码语言:javascript
复制
fb446785792148002://authorize/#state={"0is_active_session":1

这不是由Facebook.Client处理,因此会导致您的应用程序关闭并重新打开。

这是一个非常糟糕的实现,因为你的应用已经打开了。应该在不导致应用程序关闭和重新打开的情况下使用重定向。

实际上,这使得应用程序很难使用,因为它迫使应用程序经历两次启动。如果应用程序实现了像扩展闪屏这样的东西,这种方法是行不通的。

Facebook.Client应该更新其

代码语言:javascript
复制
void DialogWebBrowserOnNavigating(object sender, NavigatingEventArgs navigatingEventArgs)

在不强制关闭/重新打开的情况下处理登录流程的结束并返回到应用程序

EN

回答 1

Stack Overflow用户

发布于 2015-02-11 07:57:04

FacebookLoginBehavior.LoginBehaviorAppwithMobileInternetFallback确实没有实现,并将被删除。在WP8.0上没有办法检测app的存在。这在WP8.1中可能是可行的,我们可以尝试在那里实现它。

已取消登录的异步/等待机制,因为登录API变得碎片化。一个LoginWithApp的API -不能是异步/等待,因为登录是在进程外完成的,另一个API是LoginAsync的,它完成了一个基于Webview的登录过程。我们不得不适应另外两种登录方式- Windows上的WebAuthBroker -可以等待和基于浏览器的登录-这是不可能的。这些方法中的每一种都有自己的特点,而且每种方法都有不同的登录机制,这会造成更多的碎片化。因此,需要具有单个回调处理程序。在iOS/Android上也是这样做的。因此,C#版本与脸书认为的标准做法是一致的。

关于现在调用fb重定向的基于Webview的登录,原因是您的基于Webview的登录现在获得了一个可以静默扩展的SSO令牌。如果我们将其替换为您建议的版本,则只会授予您60天的令牌,不能延长。考虑到这一点,决定使用fb重定向。

关于UriMapper被调用了两次。这似乎是一个平台问题。我们没有做任何具体的事情。此问题已记录在here中,但未解决。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28429483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档