0

我正在为我的Android应用创建Facebook登录方法。我正在使用我的自定义登录按钮。当Facebook应用程序未安装时,此工作正常,我必须通过触摸登录按钮后出现的界面手动登录。我面临的问题是,这个方法在安装Facebook应用时无法正常工作。在这种情况下,当我触摸登录按钮时,它会启动带有“加载”字样的黑白圆形加载程序,并且该加载程序会一直持续。没有登录发生。我该如何解决它?以下是实施的代码。无法通过Android的Facebook应用登录

内onCreate方法

callbackManager=CallbackManager.Factory.create(); 
    loginButton= (LoginButton)findViewById(R.id.login_button); 
    btnFBLogin= (TextView) findViewById(R.id.btnFBLogin); 
    btnFBLogin.setSelected(true); 
    btnFBLogin.startAnimation(animationButtonFadeIn); 
    btnFBLogin.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      progressDialog = new ProgressDialog(LoginActivity.this); 
      progressDialog.setMessage("Loading..."); 
      progressDialog.show(); 
      loginButton.performClick(); 
      loginButton.setPressed(true); 
      loginButton.invalidate(); 
      loginButton.registerCallback(callbackManager, mCallBack); 
      loginButton.setPressed(false); 
      loginButton.invalidate(); 
     } 
    }); 

内的残余方法

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     callbackManager.onActivityResult(requestCode, resultCode, data); 
    } 

private FacebookCallback<LoginResult> mCallBack = new FacebookCallback<LoginResult>() { 
    @Override 
    public void onSuccess(LoginResult loginResult) { 
     progressDialog.dismiss(); 
     GraphRequest request = GraphRequest.newMeRequest(
       loginResult.getAccessToken(), 
       new GraphRequest.GraphJSONObjectCallback() { 
        @Override 
        public void onCompleted(
          JSONObject object, 
          GraphResponse response) { 
         try { 
          btnFBLogin.setVisibility(View.GONE); 
          user = new User(); 

          facebook_id = object.getString("id").toString(); 
          user.uniqueID = facebook_id; 
          full_name = object.getString("name").toString(); 
          user.name = full_name; 
          try{ 
           email = object.getString("email").toString(); 
          }catch (Exception e){ 
           email = "email_not_provided"; 
          }finally { 
           user.email = email; 
          } 
          PrefUtils.setCurrentUser(user, LoginActivity.this); 
          userRecord(facebook_id, full_name, email, "fb", null); 
         }catch (Exception e){ 
          e.printStackTrace(); 
         } 
        } 
       }); 

     Bundle parameters = new Bundle(); 
     parameters.putString("fields", "id,name,email,gender, birthday"); 
     request.setParameters(parameters); 
     request.executeAsync(); 
    } 

    @Override 
    public void onCancel() { 
     progressDialog.dismiss(); 
    } 

    @Override 
    public void onError(FacebookException e) { 
     progressDialog.dismiss(); 
    } 
}; 

回答

1

这意味着你没有正确输入你的密钥散列。

看到这个问题:Android facebook login not working with installed Facebook app

+1

谢谢,它的工作......! :) 其实我已经输入了正确的哈希键,我从Android的单例类中收到了,但还有一个键还没有添加到Facebook开发者控制台。我在facebook登录身上获得了此密钥以及我添加到控制台的错误消息。 – harshvardhan