Android facebook登录无法使用已安装的Facebook应用

Kar*_*lis 12 android facebook facebook-android-sdk facebook-sdk-3.0

我已经设置了简单的Facebook登录.对于Android 2.3.6一切正常,用户获得提示登录对话框,输入数据和应用程序继续.我认为这是android版本的错误,但是当手机上安装了facebook应用程序时,它会发现登录不起作用!

测试了这一点:Galaxy Ace 2.3.6 HTC Desire 4.1.2 Galaxy Note 4.1.2 Android模拟器4.1.2

即使是facebook样本也无法正常工作!

每次应用程序执行时 - else { Log.d("SESSION NOT OPENED", "SESSION NOT OPENED"); }

会议似乎没有打开,但为什么呢?按照本指南 - https://developers.facebook.com/docs/getting-started/facebook-sdk-for-android/3.0/

码:

Session.openActiveSession(this, true, new Session.StatusCallback() {

        @Override
        public void call(final Session session, SessionState state, Exception exception) {

            if (session.isOpened()) {

                Request.executeMeRequestAsync(session, new Request.GraphUserCallback() {

                    @Override
                    public void onCompleted(GraphUser user, Response response) {
                        if (user != null) {
                            Log.d("Access_token", session.getAccessToken());
                        }
                    }
                });
            } else {
                Log.d("SESSION NOT OPENED", "SESSION NOT OPENED");
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

ANi*_*nJa 10

我正在为那些正在使用的人写这个答案 Facebook SDK 4.X

你可以用以下两种方式之一打开facebook的登录门户网站:

  1. 如果你有一个Android设备Android 1.9.XFacebook App安装在Native Login这里名为Method的设备,你不需要使用FacebookWebView

  2. 如果您尚未安装Facebook App在Android设备中,那么最好使用它WebView

所以这个Facebook提供3 Constants

  1. NATIVE_ONLY(当您只想在Facebook App中打开时使用)
  2. WEB_ONLY(WebView仅在打开时使用)
  3. NATIVE_WITH_FALLBACK(推荐的Facebook检测和opne,webView如果没有安装应用程序)

请查看以下链接以获取详细信息 https://developers.facebook.com/docs/reference/android/current/class/LoginButton/ https://developers.facebook.com/docs/facebook-login/android/v2.2#troubleshooting

     LoginButton.setLoginBehavior(LoginBehavior.NATIVE_WITH_FALLBACK);
     LoginButton.setLoginBehavior(LoginBehavior.NATIVE_ONLY);
     LoginButton.setLoginBehavior(LoginBehavior.WEB_ONLY);
Run Code Online (Sandbox Code Playgroud)


ant*_*nyt 6

查看步骤4的底部:https://developers.facebook.com/docs/getting-started/facebook-sdk-for-android/3.0/

如果您没有正确输入您的应用程序密钥哈希,Facebook通过WebView弹出窗口登录(如果未安装该应用程序)仍然可以工作,但通过本机Facebook应用程序登录将不会.

您应该在LogCat中看到此异常:

com.facebook.http.protocol.ApiException: remote_app_id does not match stored id
Run Code Online (Sandbox Code Playgroud)

Facebook SDK会打印出异常,因此无论如何还要检查是否存在其他问题.


Jig*_*tel 6

Get you hash key using this function for both(debug and release apk) and put it in your app in developer.facebook.com/apps

private void calculateHashKey(String yourPackageName) {
    try {
        PackageInfo info = getPackageManager().getPackageInfo(
                yourPackageName,
                PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            Log.d("KeyHash:",
                    Base64.encodeToString(md.digest(), Base64.DEFAULT));
        }
    } catch (NameNotFoundException e) {
        e.printStackTrace();
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

this help me a lot.. Hope this will help you too..