我有一个使用Facebook Android SDK的应用。一切顺利(Facebook登录,喜欢功能),直到我安装Facebook for Android第三方应用程序。
如果没有第三方应用程序,我在选择登录Facebook时会获得WebView。但是安装了Facebook应用程序后,用户会被定向到FB应用程序进行登录(我相信它会启动该应用程序的活动)。
有没有办法阻止我的应用程序使用第三方应用程序处理我在应用程序上执行的任何Facebook相关操作,并且只使用SDK中的WebView进行登录?
提前致谢。
答案 0 :(得分:5)
好的,仔细阅读Facebook SDK的源代码并查看了authorize
方法,找到了答案。
发现这不是冲突,而是它的运作方式。 Facebook SDK更喜欢Single Sign-On,这意味着它肯定会使用Facebook for Android应用程序进行登录。
为了回答问题(如何阻止应用程序使用第三方应用程序),这就是我所做的:
mFacebook.authorize(context,
new String[] { "user_photos", "friends_photos", "publish_stream" },
-1,
(DialogListener) dialogListener);
我刚刚添加了第3个参数,即activityCode。 Facebook SDK检查该值是否大于或等于零,并使用单点登录。
现在我知道理想和首选的方法是使用Facebook SSO方法。