3

我想开发带有 facebook 身份验证的 android 应用程序。但是,如果手机中有 facebook 应用程序,我无法在我的应用程序上进行身份验证,如果没有,它运行良好。

所以,我想在没有 facebook 应用程序的情况下通过移动网络强制进行 facebook 身份验证。

只有当我在应用程序中使用 authorize(. , .) 时,它才会直接使用 facebook 应用程序。

我该如何解决这个问题?

此外,如果我通过 facebook 应用程序进行身份验证,Hackbook(https://developers.facebook.com/docs/mobile/android/hackbook/)也不起作用。我无法登录应用程序。

/////评论

我自己找到了答案

在 facebook sdk 中更改 facebook.java 中的授权功能。

public void authorize(Activity activity, final DialogListener listener) {
    authorize(activity, new String[] {}, FORCE_DIALOG_AUTH,
            listener);
}

/**
 * Authorize method that grants custom permissions.
 *
 * See authorize() below for @params.
 */
public void authorize(Activity activity, String[] permissions,
        final DialogListener listener) {
    authorize(activity, permissions, FORCE_DIALOG_AUTH, listener);
}

现在它起作用了!

4

1 回答 1

4

当您使用 Facebook SDK 3.0 和登录按钮时,强制执行此操作的最佳方法是将 LoginBehavior 设置为 LoginButton。这可以这样做:

LoginButton authButton = (LoginButton) view.findViewById(R.id.authButton);
authButton.setLoginBehavior(SessionLoginBehavior.SUPPRESS_SSO);

资料来源:Android - 强制 Facebook 连接 - 代码日志

于 2013-03-21T15:18:31.893 回答