1

我正在开发一个使用 facebook 集成的 android 应用程序。但是,我的应用程序的性质是多个用户将从同一设备登录。问题是,如果用户在设备上的官方 facebook 应用程序上登录,那么,当我的应用程序启动登录时,facebook 应用程序会提供身份验证。因此,如果用户的朋友想用他的facebook id 登录以使用该应用程序,他别无选择,只能从官方 facebook 应用程序中注销原始用户。

无论如何,我们可以让 facebook 提示选择使用该应用程序的用户吗?(就像在谷歌的情况下,如果您已登录并且某些 web 应用程序需要身份验证,它会提示您选择要作为身份验证的用户,包括以新用户身份登录的选项。)

PS:我知道 facebook 和手机应该是个人的东西,而不是用来传递的。我无论如何都需要这个。

4

3 回答 3

0

这样做的方法已被弃用。

在这里这里检查

但是,它确实有效

//FACEBOOK.FORCE_DIALOG_AUTH should be activityCode
Facebook.authorize(activity, permissions, activityCode, listener);
于 2013-07-23T15:03:23.553 回答
0

Android 上的 Google 支持超过 1 个帐户,但 Facebook 不支持。您一次只能在 Facebook 应用上拥有 1 个帐户。因此,您不能使用安装的 facebook 应用程序来执行此操作。

相反,您使用此参数打开浏览器窗口以在 Android 上使用 Facebook SDK 对用户进行身份验证。

mFacebook = new Facebook(Constants.FACEBOOK_APP_ID);
mFacebook.authorize(this, Constants.FACEBOOK_PERMISSIONS, Facebook.FORCE_DIALOG_AUTH, this);

通过这种方式,您可以获得多个用户的多个令牌。然后您可以使用这些令牌访问 Facebook 数据,使用Graph API.

于 2013-07-23T14:56:11.587 回答
0

请不要使用 Facebook 类,因为它已被弃用。

实现您想要的一种方法是使用 webview 登录而不是通过 Facebook 应用程序。打开会话时,您可以执行以下操作:

Session.OpenRequest openRequest = new Session.OpenRequest(MyActivity.this);
openRequest.setLoginBehavior(SessionLoginBehavior.SUPPRESS_SSO);
// add more stuff to openRequest here
Session session = new Session(MyActivity.this);
session.openForRead(openRequest);
Session.setActiveSession(session);
于 2013-07-23T18:08:19.133 回答